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;
serde
HttpApiProblem implements Serialize and Deserialize for
HttpApiProblem.
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
with_iron
There is a conversion between irons StatusCode and HttpStatusCode back
and forth.
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.
Additionally there will be a function into_iron_response which converts
anything into an iron::response::Response that can be converted into a
HttpApiProblem.
with_hyper
There is a conversion between hyperss StatusCode and HttpStatusCode
back and forth.
The HttpApiProblem provides a method to_hyper_response which constructs
a hyper Response. If the status field of the HttpApiProblem is None
500 - Internal Server Error is the default.
From<HttpApiProblem for hyper::Response will also be there. It simply
calls to_hyper_response.
Additionally there will be a function into_iron_response which converts
anything into a hyper::Response that can be converted into a
HttpApiProblem.
with_reqwest
There is a conversion between reqwests StatusCode and HttpStatusCode
back and forth.
with_rocket(nightly only)
There is a conversion between rockets Status and HttpStatusCode back
and forth.
HttpApiProblem implements rocket::response::Responder, allowing it to
be returned from rocket handlers directly (e.g. as Result<T, HttpApiProblem>). It also provides a method to_rocket_response which
explicitly constructs a rocket Response. If the status field of the
HttpApiProblem is None 500 - Internal Server Error is the default.
From<HttpApiProblem for rocket::Response will also be there. It simply
calls to_rocket_response.
Additionally there will be a function into_rocket_response which converts
anything into a rocket::Response that can be converted into a
HttpApiProblem.
Recent changes
- 0.7.0
- Feature
with_reqwestadded HttpApiProblemcan now contain additional fields
- Feature
- 0.6.2
- Feature
with_hyperreturns Response
- Feature
- 0.6.1
- Feature
with_hyperreturns response Vec
- Feature
- 0.6.0
- Feature
with_hyperuses hyper 0.12
- Feature
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 |