paperclip_core::v2::models

Struct Api

source
pub struct Api<P, R, S> {
Show 19 fields pub swagger: Version, pub definitions: BTreeMap<String, S>, pub paths: BTreeMap<String, PathItem<P, R>>, pub host: Option<String>, pub base_path: Option<String>, pub consumes: BTreeSet<MediaRange>, pub produces: BTreeSet<MediaRange>, pub schemes: BTreeSet<OperationProtocol>, pub parameters: BTreeMap<String, P>, pub responses: BTreeMap<String, R>, pub security_definitions: BTreeMap<String, SecurityScheme>, pub security: Vec<BTreeMap<String, BTreeSet<String>>>, pub tags: Vec<Tag>, pub external_docs: Option<ExternalDocs>, pub coders: Coders, pub support_crates: BTreeMap<String, String>, pub spec_format: SpecFormat, pub info: Info, pub extensions: BTreeMap<String, Value>,
}
Expand description

OpenAPI v2 (swagger) spec generic over parameter and schema.

https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#swagger-object

Fields§

§swagger: Version§definitions: BTreeMap<String, S>§paths: BTreeMap<String, PathItem<P, R>>§host: Option<String>§base_path: Option<String>§consumes: BTreeSet<MediaRange>§produces: BTreeSet<MediaRange>§schemes: BTreeSet<OperationProtocol>§parameters: BTreeMap<String, P>§responses: BTreeMap<String, R>§security_definitions: BTreeMap<String, SecurityScheme>§security: Vec<BTreeMap<String, BTreeSet<String>>>§tags: Vec<Tag>§external_docs: Option<ExternalDocs>§coders: Coders

Extension for custom coders to be used for decoding API objects.

An example for JSON would be:

x-rust-coders:
  application/json:
    encoder_path: serde_json::to_writer
    decoder_path: serde_json::from_reader
    any_value: serde_json::Value
    error_path: serde_json::Error

NOTE: JSON and YAML encodings are already supported.

§support_crates: BTreeMap<String, String>

Additional crates that need to be added to the manifest.

The key is the LHS of a dependency, which is the crate name. The value is the RHS of a crate’s requirements as it would appear in the manifest. Note that the caller must add proper escaping wherever required.

For example, the following are all valid:

  • my_crate: "0.7"
  • my_crate: "{ git = \"git://foo.bar/repo\" }"
  • my_crate: "{ version = \"0.9\", features = [\"booya\"] }"
§spec_format: SpecFormat

This field is set manually, because we don’t know the format in which the spec was provided and we need to use this as the fallback encoding.

§info: Info§extensions: BTreeMap<String, Value>

Implementations§

source§

impl<P, R, S> Api<P, R, S>

source

pub fn path_parameters_map( path: &str, f: impl FnMut(&str) -> Cow<'static, str>, ) -> Cow<'_, str>

Gets the parameters from the given path template and calls the given function with the parameter names.

source§

impl<S: Schema + Default> Api<Arc<RwLock<Parameter<Resolvable<S>>>>, Arc<RwLock<Response<Resolvable<S>>>>, Resolvable<S>>

source

pub fn resolve(self) -> Result<ResolvableApi<S>, ValidationError>

Consumes this API schema, resolves the references and returns the resolved schema.

This walks recursively, collects the referenced schema objects, substitutes the referenced IDs with the pointer to schema objects and returns the resolved object or an error if it encountered one.

Trait Implementations§

source§

impl<P: Clone, R: Clone, S: Clone> Clone for Api<P, R, S>

source§

fn clone(&self) -> Api<P, R, S>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<P: Debug, R: Debug, S: Debug> Debug for Api<P, R, S>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<P: Default, R: Default, S: Default> Default for Api<P, R, S>

source§

fn default() -> Api<P, R, S>

Returns the “default value” for a type. Read more
source§

impl<'de, P, R, S> Deserialize<'de> for Api<P, R, S>
where P: Deserialize<'de>, R: Deserialize<'de>, S: Deserialize<'de>,

source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
source§

impl From<Api<Parameter<DefaultSchemaRaw>, Response<DefaultSchemaRaw>, DefaultSchemaRaw>> for OpenAPI

source§

fn from(v2: DefaultApiRaw) -> Self

Converts to this type from the input type.
source§

impl<P, R, S> Serialize for Api<P, R, S>
where P: Serialize, R: Serialize, S: Serialize,

source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

§

impl<P, R, S> Freeze for Api<P, R, S>

§

impl<P, R, S> RefUnwindSafe for Api<P, R, S>

§

impl<P, R, S> Send for Api<P, R, S>
where S: Send, P: Send, R: Send,

§

impl<P, R, S> Sync for Api<P, R, S>
where S: Sync, P: Sync, R: Sync,

§

impl<P, R, S> Unpin for Api<P, R, S>

§

impl<P, R, S> UnwindSafe for Api<P, R, S>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same for T

source§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where T: Clone,

source§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,