dream/http

Convenience module for HTTP utilities

This module re-exports all HTTP-related types and functions from the dream/http submodules, allowing you to use a single import in your controllers.

Instead of importing from multiple modules:

import dream/http/request.{type Request}
import dream/http/response.{json_response}
import dream/http/status
import dream/http/params.{require_int}

You can just import one:

import dream/http

pub fn show(request: http.Request, context, services) -> http.Response {
  use id <- result.try(http.require_int(request, "id"))
  let user = get_user(services.db, id)
  http.json_response(http.ok, user_to_json(user))
}

What’s Re-exported

This module re-exports:

Types:

Functions:

When to Use This

Use dream/http in controllers for convenience. For more specific imports or when you only need one or two functions, import the specific submodule:

import dream/http/status  // Just status codes
import dream/http/error.{type Error}  // Just error type

Types

pub type Cookie =
  cookie.Cookie
pub type Error =
  error.Error
pub type Header =
  header.Header
pub type Method =
  request.Method
pub type SameSite =
  cookie.SameSite

Values

pub const accepted: Int
pub const bad_request: Int
pub const binary_response: fn(Int, BitArray, String) -> response.Response
pub const conflict: Int
pub const cookie_name: fn(cookie.Cookie) -> String
pub const cookie_value: fn(cookie.Cookie) -> String
pub const created: Int
pub const empty_response: fn(Int) -> response.Response
pub const field_optional: fn(List(#(String, String)), String) -> option.Option(
  String,
)
pub const forbidden: Int
pub const found: Int
pub const get_cookie: fn(List(cookie.Cookie), String) -> option.Option(
  cookie.Cookie,
)
pub const get_cookie_value: fn(List(cookie.Cookie), String) -> option.Option(
  String,
)
pub const get_header: fn(List(header.Header), String) -> option.Option(
  String,
)
pub const get_int_param: fn(request.Request, String) -> Result(
  Int,
  String,
)
pub const get_param: fn(request.Request, String) -> Result(
  request.PathParam,
  String,
)
pub const get_query_param: fn(String, String) -> option.Option(
  String,
)
pub const get_string_param: fn(request.Request, String) -> Result(
  String,
  String,
)
pub const has_content_type: fn(request.Request, String) -> Bool
pub const header_name: fn(header.Header) -> String
pub const header_value: fn(header.Header) -> String
pub const html_response: fn(Int, String) -> response.Response
pub const internal_server_error: Int
pub const is_method: fn(request.Request, request.Method) -> Bool
pub const json_response: fn(Int, String) -> response.Response
pub const method_not_allowed: Int
pub const method_to_string: fn(request.Method) -> String
pub const moved_permanently: Int
pub const no_content: Int
pub const not_found: Int
pub const not_implemented: Int
pub const ok: Int
pub const parse_method: fn(String) -> option.Option(
  request.Method,
)
pub const redirect_response: fn(Int, String) -> response.Response
pub const require_field: fn(List(#(String, String)), String) -> Result(
  String,
  error.Error,
)
pub const require_field_int: fn(List(#(String, String)), String) -> Result(
  Int,
  error.Error,
)
pub const require_form: fn(request.Request) -> Result(
  List(#(String, String)),
  error.Error,
)
pub const require_int: fn(request.Request, String) -> Result(
  Int,
  error.Error,
)
pub const require_string: fn(request.Request, String) -> Result(
  String,
  error.Error,
)
pub const secure_cookie: fn(String, String) -> cookie.Cookie
pub const see_other: Int
pub const service_unavailable: Int
pub const set_params: fn(request.Request, List(#(String, String))) -> request.Request
pub const simple_cookie: fn(String, String) -> cookie.Cookie
pub const stream_response: fn(
  Int,
  yielder.Yielder(BitArray),
  String,
) -> response.Response
pub const temporary_redirect: Int
pub const text_response: fn(Int, String) -> response.Response
pub const too_many_requests: Int
pub const unauthorized: Int
pub const unprocessable_content: Int
pub const validate_json: fn(String, decode.Decoder(a)) -> Result(
  a,
  validation.ValidationError,
)
Search Document