Types and functions for HTTP clients and servers!
import gleam/http/elli
import gleam/http/response.{type Response}
import gleam/http/request.{type Request}
import gleam/bytes_builder.{type BytesBuilder}
// Define a HTTP service
//
pub fn my_service(_request: Request(t)) -> Response(BytesBuilder) {
let body = bytes_builder.from_string("Hello, world!")
response.new(200)
|> response.prepend_header("made-with", "Gleam")
|> response.set_body(body)
}
// Start it on port 3000 using the Elli web server
//
pub fn main() {
elli.become(my_service, on_port: 3000)
}
In the example above the Elli Erlang web server is used to run the Gleam HTTP service. Here's a full list of the server adapters available, sorted alphabetically.
Adapter | About |
---|---|
Mist | Mist is a high performance pure Gleam HTTP 1.1 server |
cgi | cgi is a adapter for the Common Gateway Interface. |
gleam_cowboy | Cowboy is an Erlang HTTP2 & HTTP1.1 web server |
gleam_elli | Elli is an Erlang HTTP1.1 web server |
gleam_plug | Plug is an Elixir web application interface |
Client adapters are used to send HTTP requests to services over the network. Here's a full list of the client adapters available, sorted alphabetically.
Adapter | About |
---|---|
gleam_fetch | fetch is a HTTP client included with JavaScript |
gleam_hackney | Hackney is a simple HTTP client for Erlang |
gleam_httpc | httpc is a HTTP client included with Erlang |