Remove remaining references to hyper and use new header style in docs.
This commit is contained in:
parent
7b1e22eea4
commit
a035c233be
14
README.md
14
README.md
@ -13,7 +13,7 @@ Here is an example that shows most of the macro's functionality.
|
|||||||
#![feature(associated_consts, proc_macro, try_from)]
|
#![feature(associated_consts, proc_macro, try_from)]
|
||||||
|
|
||||||
extern crate futures;
|
extern crate futures;
|
||||||
extern crate hyper;
|
extern crate http;
|
||||||
extern crate ruma_api;
|
extern crate ruma_api;
|
||||||
extern crate ruma_api_macros;
|
extern crate ruma_api_macros;
|
||||||
extern crate serde;
|
extern crate serde;
|
||||||
@ -28,9 +28,9 @@ pub mod some_endpoint {
|
|||||||
ruma_api! {
|
ruma_api! {
|
||||||
metadata {
|
metadata {
|
||||||
description: "Does something.",
|
description: "Does something.",
|
||||||
method: Method::Get, // A `hyper::Method` value. No need to import the name.
|
method: GET, // An `http::Method` constant. No imports required.
|
||||||
name: "some_endpoint",
|
name: "some_endpoint",
|
||||||
path: "/_matrix/some/endpoint/:baz",
|
path: "/_matrix/some/endpoint/:baz", // Variable path components start with a colon.
|
||||||
rate_limited: false,
|
rate_limited: false,
|
||||||
requires_authentication: false,
|
requires_authentication: false,
|
||||||
}
|
}
|
||||||
@ -40,8 +40,8 @@ pub mod some_endpoint {
|
|||||||
pub foo: String,
|
pub foo: String,
|
||||||
|
|
||||||
// This value will be put into the "Content-Type" HTTP header.
|
// This value will be put into the "Content-Type" HTTP header.
|
||||||
#[ruma_api(header)]
|
#[ruma_api(header = "CONTENT_TYPE")]
|
||||||
pub content_type: ContentType,
|
pub content_type: String
|
||||||
|
|
||||||
// This value will be put into the query string of the request's URL.
|
// This value will be put into the query string of the request's URL.
|
||||||
#[ruma_api(query)]
|
#[ruma_api(query)]
|
||||||
@ -55,8 +55,8 @@ pub mod some_endpoint {
|
|||||||
|
|
||||||
response {
|
response {
|
||||||
// This value will be extracted from the "Content-Type" HTTP header.
|
// This value will be extracted from the "Content-Type" HTTP header.
|
||||||
#[ruma_api(header)]
|
#[ruma_api(header = "CONTENT_TYPE")]
|
||||||
pub content_type: ContentType,
|
pub content_type: String
|
||||||
|
|
||||||
// With no attribute on the field, it will be extracted from the body of the response.
|
// With no attribute on the field, it will be extracted from the body of the response.
|
||||||
pub value: String,
|
pub value: String,
|
||||||
|
53
src/lib.rs
53
src/lib.rs
@ -28,7 +28,7 @@ mod api;
|
|||||||
/// ruma_api! {
|
/// ruma_api! {
|
||||||
/// metadata {
|
/// metadata {
|
||||||
/// description: &'static str
|
/// description: &'static str
|
||||||
/// method: hyper::Method,
|
/// method: http::Method,
|
||||||
/// name: &'static str,
|
/// name: &'static str,
|
||||||
/// path: &'static str,
|
/// path: &'static str,
|
||||||
/// rate_limited: bool,
|
/// rate_limited: bool,
|
||||||
@ -50,8 +50,8 @@ mod api;
|
|||||||
///
|
///
|
||||||
/// This will generate a `ruma_api::Metadata` value to be used for the `ruma_api::Endpoint`'s
|
/// This will generate a `ruma_api::Metadata` value to be used for the `ruma_api::Endpoint`'s
|
||||||
/// associated constant, single `Request` and `Response` structs, and the necessary trait
|
/// associated constant, single `Request` and `Response` structs, and the necessary trait
|
||||||
/// implementations to convert the request into a `hyper::Request` and to create a response from a
|
/// implementations to convert the request into a `http::Request` and to create a response from a
|
||||||
/// `hyper::response`.
|
/// `http::Response`.
|
||||||
///
|
///
|
||||||
/// The details of each of the three sections of the macros are documented below.
|
/// The details of each of the three sections of the macros are documented below.
|
||||||
///
|
///
|
||||||
@ -59,8 +59,8 @@ mod api;
|
|||||||
///
|
///
|
||||||
/// * `description`: A short description of what the endpoint does.
|
/// * `description`: A short description of what the endpoint does.
|
||||||
/// * `method`: The HTTP method used for requests to the endpoint.
|
/// * `method`: The HTTP method used for requests to the endpoint.
|
||||||
/// It's not necessary to import `hyper::Method`, you just write the value as if it was
|
/// It's not necessary to import `http::Method`'s associated constants. Just write
|
||||||
/// imported, e.g. `Method::Get`.
|
/// the value as if it was imported, e.g. `GET`.
|
||||||
/// * `name`: A unique name for the endpoint.
|
/// * `name`: A unique name for the endpoint.
|
||||||
/// Generally this will be the same as the containing module.
|
/// Generally this will be the same as the containing module.
|
||||||
/// * `path`: The path component of the URL for the endpoint, e.g. "/foo/bar".
|
/// * `path`: The path component of the URL for the endpoint, e.g. "/foo/bar".
|
||||||
@ -76,11 +76,14 @@ mod api;
|
|||||||
/// The request block contains normal struct field definitions.
|
/// The request block contains normal struct field definitions.
|
||||||
/// Doc comments and attributes are allowed as normal.
|
/// Doc comments and attributes are allowed as normal.
|
||||||
/// There are also a few special attributes available to control how the struct is converted into a
|
/// There are also a few special attributes available to control how the struct is converted into a
|
||||||
/// `hyper::Request`:
|
/// `http::Request`:
|
||||||
///
|
///
|
||||||
/// * `#[ruma_api(header)]`: Fields with this attribute will be treated as HTTP headers on the
|
/// * `#[ruma_api(header = "HEADER_NAME")]`: Fields with this attribute will be treated as HTTP
|
||||||
/// request.
|
/// headers on the request.
|
||||||
/// The value must implement `hyper::header::Header`.
|
/// The value must implement `http::HttpTryFrom for http::header::HeaderValue`.
|
||||||
|
/// Generally this is a string.
|
||||||
|
/// The attribute value shown above as `HEADER_NAME` must be a header name constant from
|
||||||
|
/// `http::header`, e.g. `CONTENT_TYPE`.
|
||||||
/// * `#[ruma_api(path)]`: Fields with this attribute will be inserted into the matching path
|
/// * `#[ruma_api(path)]`: Fields with this attribute will be inserted into the matching path
|
||||||
/// component of the request URL.
|
/// component of the request URL.
|
||||||
/// * `#[ruma_api(query)]`: Fields with this attribute will be inserting into the URL's query
|
/// * `#[ruma_api(query)]`: Fields with this attribute will be inserting into the URL's query
|
||||||
@ -94,11 +97,14 @@ mod api;
|
|||||||
/// Like the request block, the response block consists of normal struct field definitions.
|
/// Like the request block, the response block consists of normal struct field definitions.
|
||||||
/// Doc comments and attributes are allowed as normal.
|
/// Doc comments and attributes are allowed as normal.
|
||||||
/// There is also a special attribute available to control how the struct is created from a
|
/// There is also a special attribute available to control how the struct is created from a
|
||||||
/// `hyper::Request`:
|
/// `http::Request`:
|
||||||
///
|
///
|
||||||
/// * `#[ruma_api(header)]`: Fields with this attribute will be treated as HTTP headers on the
|
/// * `#[ruma_api(header = "HEADER_NAME")]`: Fields with this attribute will be treated as HTTP
|
||||||
/// response.
|
/// headers on the response.
|
||||||
/// The value must implement `hyper::header::Header`.
|
/// The value must implement `http::HttpTryFrom for http::header::HeaderValue`.
|
||||||
|
/// Generally this is a string.
|
||||||
|
/// The attribute value shown above as `HEADER_NAME` must be a header name constant from
|
||||||
|
/// `http::header`, e.g. `CONTENT_TYPE`.
|
||||||
///
|
///
|
||||||
/// Any field that does not include the above attribute will be expected in the response's JSON
|
/// Any field that does not include the above attribute will be expected in the response's JSON
|
||||||
/// body.
|
/// body.
|
||||||
@ -115,10 +121,10 @@ mod api;
|
|||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
/// ```rust,no_run
|
/// ```rust,no_run
|
||||||
/// #![feature(associated_consts, proc_macro, try_from)]
|
/// #![feature(proc_macro, try_from)]
|
||||||
///
|
///
|
||||||
/// extern crate futures;
|
/// extern crate futures;
|
||||||
/// extern crate hyper;
|
/// extern crate http;
|
||||||
/// extern crate ruma_api;
|
/// extern crate ruma_api;
|
||||||
/// extern crate ruma_api_macros;
|
/// extern crate ruma_api_macros;
|
||||||
/// extern crate serde;
|
/// extern crate serde;
|
||||||
@ -129,13 +135,12 @@ mod api;
|
|||||||
///
|
///
|
||||||
/// # fn main() {
|
/// # fn main() {
|
||||||
/// pub mod some_endpoint {
|
/// pub mod some_endpoint {
|
||||||
/// use hyper::header::ContentType;
|
|
||||||
/// use ruma_api_macros::ruma_api;
|
/// use ruma_api_macros::ruma_api;
|
||||||
///
|
///
|
||||||
/// ruma_api! {
|
/// ruma_api! {
|
||||||
/// metadata {
|
/// metadata {
|
||||||
/// description: "Does something.",
|
/// description: "Does something.",
|
||||||
/// method: Method::Get,
|
/// method: GET,
|
||||||
/// name: "some_endpoint",
|
/// name: "some_endpoint",
|
||||||
/// path: "/_matrix/some/endpoint/:baz",
|
/// path: "/_matrix/some/endpoint/:baz",
|
||||||
/// rate_limited: false,
|
/// rate_limited: false,
|
||||||
@ -144,17 +149,21 @@ mod api;
|
|||||||
///
|
///
|
||||||
/// request {
|
/// request {
|
||||||
/// pub foo: String,
|
/// pub foo: String,
|
||||||
/// #[ruma_api(header)]
|
///
|
||||||
/// pub content_type: ContentType,
|
/// #[ruma_api(header = "CONTENT_TYPE")]
|
||||||
|
/// pub content_type: String,
|
||||||
|
///
|
||||||
/// #[ruma_api(query)]
|
/// #[ruma_api(query)]
|
||||||
/// pub bar: String,
|
/// pub bar: String,
|
||||||
|
///
|
||||||
/// #[ruma_api(path)]
|
/// #[ruma_api(path)]
|
||||||
/// pub baz: String,
|
/// pub baz: String,
|
||||||
/// }
|
/// }
|
||||||
///
|
///
|
||||||
/// response {
|
/// response {
|
||||||
/// #[ruma_api(header)]
|
/// #[ruma_api(header = "CONTENT_TYPE")]
|
||||||
/// pub content_type: ContentType,
|
/// pub content_type: String,
|
||||||
|
///
|
||||||
/// pub value: String,
|
/// pub value: String,
|
||||||
/// }
|
/// }
|
||||||
/// }
|
/// }
|
||||||
@ -171,7 +180,7 @@ mod api;
|
|||||||
/// ruma_api! {
|
/// ruma_api! {
|
||||||
/// metadata {
|
/// metadata {
|
||||||
/// description: "Does something.",
|
/// description: "Does something.",
|
||||||
/// method: Method::Get,
|
/// method: GET,
|
||||||
/// name: "newtype_body_endpoint",
|
/// name: "newtype_body_endpoint",
|
||||||
/// path: "/_matrix/some/newtype/body/endpoint",
|
/// path: "/_matrix/some/newtype/body/endpoint",
|
||||||
/// rate_limited: false,
|
/// rate_limited: false,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user