Creare un server HTTP con Erlang e Cowboy

by theArchitect
SHARE
Creare un server HTTP con Erlang e Cowboy
© Guida-HTML5.it

Introduzione

In questo tutorial, esploreremo come creare un semplice server HTTP utilizzando Erlang e il framework Cowboy. Cowboy è un server HTTP leggero e altamente performante, ideale per costruire applicazioni web scalabili. In particolare, ci concentreremo su come gestire le richieste HTTP e inviare risposte al client. Questo tutorial è pensato per programmatori intermedi che vogliono approfondire le loro conoscenze su Erlang e Cowboy.

Codice completo

Di seguito è riportato un esempio completo di un server HTTP che risponde a richieste GET e POST. Il server restituirà un messaggio di benvenuto per le richieste GET e gestirà i dati inviati in una richiesta POST.


-module(my_http_server).
-export([start/0, init/1, handle_request/2, stop/1]).

-include_lib("cowboy/include/cowboy.hrl").

start() -<"GET"><"content-type"><"text/plain"><"Benvenuto nel mio server HTTP!"><"POST"><"content-type"><"text/plain"><"Dati ricevuti!"><"content-type"><"text/plain"><"Metodo non supportato!">

Spiegazione

Analizziamo il codice passo dopo passo:

  • -module(my_http_server).: Definisce il modulo Erlang.
  • -export([start/0, init/1, handle_request/2, stop/1]).: Esporta le funzioni che possono essere chiamate dall´esterno.
  • -include_lib("cowboy/include/cowboy.hrl").: Include le definizioni necessarie di Cowboy.
  • start/0: Questa funzione avvia il server Cowboy sulla porta 8080 e definisce le rotte. In questo caso, abbiamo una sola rotta che punta alla nostra funzione my_http_server.
  • init/1: Inizializza la richiesta e chiama handle_request/2 per gestire la richiesta.
  • handle_request/2: Gestisce le richieste GET e POST. Se il metodo è GET, restituisce un messaggio di benvenuto. Se è POST, legge il corpo della richiesta e restituisce un messaggio di conferma. Se il metodo non è supportato, restituisce un errore 405.
  • stop/1: Funzione per fermare il server, utile per la gestione delle chiusure.

Best practice

Quando si sviluppa un server HTTP con Erlang e Cowboy, è importante seguire alcune best practice:

  • Gestione degli errori: Assicurati di gestire correttamente gli errori e restituire codici di stato HTTP appropriati.
  • Logging: Utilizza il logging per monitorare le richieste e le risposte. Questo è utile per il debug e per analizzare il traffico del server.
  • Configurazione: Mantieni la configurazione del server separata dal codice. Utilizza file di configurazione o variabili d´ambiente per impostare parametri come la porta del server.
  • Test: Scrivi test automatizzati per le tue API. Puoi utilizzare strumenti come Postman o curl per testare le tue rotte.

Riepilogo

In questo tutorial, abbiamo creato un semplice server HTTP utilizzando Erlang e Cowboy. Abbiamo gestito richieste GET e POST, imparando a rispondere correttamente ai client. Abbiamo anche discusso alcune best practice per lo sviluppo di server web. Con questo esempio, hai una base solida per costruire applicazioni web più complesse utilizzando Erlang e Cowboy.

Approfondisci con risorse ufficiali

SHARE