plumbapius v0.7.1 Plumbapius.Request
Defines methods for validating requests by schema
Link to this section Summary
Functions
Validates request body according to a schema.
Link to this section Functions
Link to this function
match?(schema, request_method, request_path)
Specs
match?(Plumbapius.Request.Schema.t(), String.t(), String.t()) :: boolean()
Link to this function
validate_body(request_schema, request_body)
Specs
validate_body(Plumbapius.Request.Schema.t(), map()) :: :ok | {:error, list()}
Validates request body according to a schema.
Parameters
- request_schema: Request schema for validation.
- request_body: Request body to validate.
Examples
iex> request_schema = Plumbapius.Request.Schema.new(%{
...> "method"=>"GET",
...> "path"=>"/users",
...> "content-type"=>"application/json",
...> "request"=>%{
...> "$schema" => "http://json-schema.org/draft-04/schema#",
...> "type" => "object",
...> "properties" => %{"msisdn" => %{"type" => "number"}},
...> "required" => ["msisdn"]
...> },
...> "responses"=>[]
...> })
iex> Plumbapius.Request.validate_body(request_schema, %{"msisdn" => 12345})
:ok
iex> Plumbapius.Request.validate_body(request_schema, %{"msisdn" => "12345"})
{:error, "#/msisdn: Type mismatch. Expected Number but got String."}