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 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