module Azu::Request

Overview

Every HTTP request message has a specific form:

POST /path HTTP/1.1
Host: example.com

foo=bar&baz=bat

A HTTP message is either a request from a client to a server or a response from a server to a client The Azu::Request represents a client request and it provides additional helper methods to access different parts of the HTTP Request extending the Crystal HTTP::Request standard library class. These methods are define in the Helpers class.

Azu Request are design by contract in order to enforce correctness. What this means is that requests are strictly typed and can have pre-conditions. With this concept Azu::Request provides a consice way to type safe and validate requests objects.

Azu Requests benefits:

Azu Requests contracts is provided by tight integration with the Schema shard

Example Use:

class UserRequest
  include Azu::Request

  query name : String, message: "Param name must be present.", presence: true
end

Initializers

UserRequest.from_json(pyaload: String)
UserRequest.new(params: Hash(String, String))

Available Methods

getters   - For each of the params
valid?    - Bool
validate! - True or Raise Error
errors    - Errors(T, S)
rules     - Rules(T, S)
params    - Original params payload
to_json   - Outputs JSON
to_yaml   - Outputs YAML

Defined in:

azu/request.cr