#![cfg(feature = "openapi")]
use rweb::*;
use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize, Schema)]
#[schema(component = "Item")]
struct ComponentTestReq {
data: String,
}
#[get("/")]
fn component(_: Query<ComponentTestReq>) -> String {
String::new()
}
#[test]
fn component_test() {
let (spec, _) = openapi::spec().build(|| {
component()
});
assert!(spec.paths.get("/").is_some());
assert!(spec.paths.get("/").unwrap().get.is_some());
let yaml = serde_yaml::to_string(&spec).unwrap();
println!("{}", yaml);
}
#[derive(Debug, Deserialize, Schema)]
struct ExampleReq {
#[schema(example = "10")]
limit: usize,
data: String,
}
#[get("/")]
fn example(_: Query<ExampleReq>) -> String {
String::new()
}
#[test]
fn example_test() {
let (spec, _) = openapi::spec().build(|| {
example()
});
assert!(spec.paths.get("/").is_some());
assert!(spec.paths.get("/").unwrap().get.is_some());
let yaml = serde_yaml::to_string(&spec).unwrap();
println!("{}", yaml);
assert!(yaml.contains("10"));
}