Crate http_api_problem [−] [src]
HTTP-API-PROBLEM
A library to create HTTP response content for APIs based on RFC7807.
Usage
Get the latest version for your Cargo.toml
from
crates.io.
Add this to your crate root:
extern crate http_api_problem;
Examples
use http_api_problem::*; let p = HttpApiProblem::with_title_and_type_from_status(HttpStatusCode::NotFound) .set_detail("detailed explanation") .set_instance("/on/1234/do/something"); assert_eq!(Some("https://httpstatuses.com/404".to_string()), p.type_url); assert_eq!(Some(HttpStatusCode::NotFound), p.status); assert_eq!("Not Found".to_string(), p.title); assert_eq!(Some("detailed explanation".to_string()), p.detail); assert_eq!(Some("/on/1234/do/something".to_string()), p.instance);
There is also From<u16>
implemented for HttpStatusCode
:
use http_api_problem::*; let p = HttpApiProblem::with_title_and_type_from_status(428) .set_detail("detailed explanation") .set_instance("/on/1234/do/something"); assert_eq!(Some("https://httpstatuses.com/428".to_string()), p.type_url); assert_eq!(Some(HttpStatusCode::PreconditionRequired), p.status); assert_eq!("Precondition Required".to_string(), p.title); assert_eq!(Some("detailed explanation".to_string()), p.detail); assert_eq!(Some("/on/1234/do/something".to_string()), p.instance);
Features
serde
The serde
feature provides Serialize
and Deserialize
for HttpApiProblem
.
serde + serde_json
HttpApiProblem
provides a method to `wich is a
Vec[u8]`
iron
There is a conversion between iron
s StatusCode and HttpStatusCode
back and forth.
iron + serde + serde_json
The HttpApiProblem
provides a method to_iron_response
which constructs an iron Response
.
If the status
field of the HttpApiProblem
is None
500 - Internal Server Error
is the default.
From<HttpApiProblem
for iron::response::Response
will also be there. It simply calls
to_iron_response
.
License
http-api-problem
is primarily distributed under the terms of both the MIT license and the
Apache License (Version 2.0).
Copyright (c) 2017 Christian Douven.
Structs
HttpApiProblem |
Description of a problem that can be returned by an HTTP API based on RFC7807 |
Enums
HttpStatusCode |
An HTTP status code ( |
Statics
PROBLEM_JSON_MEDIA_TYPE |
The recommended media type when serialized to JSON |
PROBLEM_XML_MEDIA_TYPE |
The recommended media type when serialized to XML |