HTTP-API-PROBLEM
[](https://travis-ci. org/chridou/http-api-problem) [](https://github. com/chridou/http-api-problem/blob/master/LICENSE-MIT) [] (https://github.com/chridou/http-api-problem/blob/master/LICENSE-APACHE)
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 iron
s 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 hypers
s StatusCode and HttpStatusCode
back and forth.
The HttpApiProblem
provides a method to_hyper_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 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_rocket(nightly only)
There is a conversion between rocket
s 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.2
- Feature
with_hyper
returns Response
- Feature
- 0.6.1
- Feature
with_hyper
returns response Vec
- Feature
- 0.6.0
- Feature
with_hyper
uses 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_iron
andwith_hyper
to_iron_response
now 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.
License: Apache-2.0/MIT