struct2swagger

Crates.iostruct2swagger
lib.rsstruct2swagger
version0.1.6
sourcesrc
created_at2019-08-30 16:10:06.507379
updated_at2020-10-04 20:00:23.041232
descriptionCreate Swagger OpenApi3 from your structs
homepage
repositoryhttps://github.com/allevo/struct2swagger
max_upload_size
id160940
size45,347
Tommaso Allevi (allevo)

documentation

README

struct2swagger Build Status

Utilities for generating OpenAPI Specification from your structures

Install

cargo add struct2swagger_derive struct2swagger

Usage


#[macro_use]
extern crate struct2swagger_derive;
#[macro_use]
extern crate struct2swagger;
#[macro_use]
extern crate serde_json;

use struct2swagger::{JsonSchemaDefinition, QueryDefinition, swagger_object::SwaggerObject};
use serde_json::Result;

#[derive(Deserialize, Swagger)]
pub struct Who {
    pub name: Option<String>,
}
#[derive(Serialize, Swagger)]
pub struct HelloWorldResponse {
    pub say: String,
}

fn get_openapi_spec() -> String {
  let mut swagger_object = SwaggerObject::new(
    "the webserver name", // title
    "1.0.0" // version
  );

  swagger_add_router!(
      swagger_object, // obj
      "GET", // method
      "/", // path
      Who, // query parameters
      200, // expected status code
      "say", //  description
      HelloWorldResponse // struct in output
  );

  let json = serde_json::to_string(&address).unwrap();

  json
}

For other examples see tests

Contributing

Every contribution is welcomed: Open an issue and fire a PR!

License

MIT as described here

Commit count: 35

cargo fmt