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 *;
let p = with_title_and_type_from_status
.set_detail
.set_instance;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
There is also From<u16> implemented for HttpStatusCode:
use *;
let p = with_title_and_type_from_status
.set_detail
.set_instance;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
assert_eq!;
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 an 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_hyper_response which converts anything into
a hyper::Response that can be converted into a HttpApiProblem.
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.6.0
- Feature
with_hyperuses hyper 0.12
- Feature
- 0.5.3
- Fixed JSON mappings(serde attributes were not respected)
- 0.5.2
- Added methods to status code to query its category
- 0.5.1
- Support for
Rocket(contributed by panicbit)
- Support for
- 0.5.0
- Breaking changes, features renamed to
with_ironandwith_hyper to_iron_responsenow takes a ref insted ofSelf.
- Breaking changes, features renamed to
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.