pub struct Spec { /* private fields */ }Implementations§
Source§impl Spec
impl Spec
Sourcepub fn from_path(path: &str) -> SpecResult<Self>
pub fn from_path(path: &str) -> SpecResult<Self>
Create a new Spec from an OpenAPI spec file.
§Arguments
path- Path to the OpenAPI spec file
§Returns
A Spec instance
§Errors
Returns an error if the spec file cannot be loaded.
§Example
use openapi_mocker::openapi::spec::Spec;
let spec = Spec::from_path("tests/testdata/petstore.yaml").unwrap();This will create a new Spec instance from the Petstore spec.
You can then use the get_example method to get example responses.
Sourcepub fn get_example(&self, req: &HttpRequest) -> Option<Value>
pub fn get_example(&self, req: &HttpRequest) -> Option<Value>
Get an example response for a request.
§Arguments
req- The HTTP request
§Returns
An example response as a JSON value
§Example
use actix_web::test::TestRequest;
use openapi_mocker::openapi::spec::Spec;
let spec = Spec::from_path("tests/testdata/petstore.yaml").unwrap();
let req = TestRequest::with_uri("/pets").to_http_request();
let example = spec.get_example(&req);You can also load a specific example by matching the request path, query, or headers.
§Example with exact path match
use actix_web::test::TestRequest;
use openapi_mocker::openapi::spec::Spec;
let spec = Spec::from_path("tests/testdata/petstore.yaml").unwrap();
let req = TestRequest::with_uri("/pets/2").to_http_request();
let example = spec.get_example(&req).unwrap();
assert_eq!(example["id"], serde_json::Value::Number(serde_json::Number::from(2)));§Example with query parameters
use actix_web::test::TestRequest;
use openapi_mocker::openapi::spec::Spec;
let spec = Spec::from_path("tests/testdata/petstore.yaml").unwrap();
let req = TestRequest::with_uri("/pets?page=1").to_http_request();
let examples = spec.get_example(&req).unwrap();
let example = examples.as_array().unwrap().get(0).unwrap();
assert_eq!(example["id"], serde_json::Value::Number(serde_json::Number::from(1)));Auto Trait Implementations§
impl Freeze for Spec
impl RefUnwindSafe for Spec
impl Send for Spec
impl Sync for Spec
impl Unpin for Spec
impl UnsafeUnpin for Spec
impl UnwindSafe for Spec
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more