Module: OpenapiFirst
- Defined in:
- lib/openapi_first.rb,
lib/openapi_first/config.rb,
lib/openapi_first/errors.rb,
lib/openapi_first/router.rb,
lib/openapi_first/plugins.rb,
lib/openapi_first/version.rb,
lib/openapi_first/operation.rb,
lib/openapi_first/definition.rb,
lib/openapi_first/use_router.rb,
lib/openapi_first/json_schema.rb,
lib/openapi_first/error_response.rb,
lib/openapi_first/string_keyed_hash.rb,
lib/openapi_first/json_schema/result.rb,
lib/openapi_first/request_validation.rb,
lib/openapi_first/response_validator.rb,
lib/openapi_first/response_validation.rb,
lib/openapi_first/body_parser_middleware.rb,
lib/openapi_first/request_body_validator.rb,
lib/openapi_first/error_responses/default.rb,
lib/openapi_first/error_responses/json_api.rb,
lib/openapi_first/request_validation_error.rb
Defined Under Namespace
Modules: ErrorResponses, Plugins, UseRouter Classes: BodyParserMiddleware, BodyParsingError, Config, Definition, Error, ErrorResponse, JsonSchema, NotFoundError, Operation, RequestBodyValidator, RequestInvalidError, RequestValidation, RequestValidationError, ResponseBodyInvalidError, ResponseCodeNotFoundError, ResponseContentTypeNotFoundError, ResponseHeaderInvalidError, ResponseInvalid, ResponseValidation, ResponseValidator, Router, StringKeyedHash
Constant Summary collapse
- OPERATION =
The OpenAPI operation for the current request
'openapi.operation'- PARAMS =
Merged parsed path and query parameters
'openapi.params'- QUERY_PARAMS =
Parsed query parameters
'openapi.query'- PATH_PARAMS =
Parsed path parameters
'openapi.path_params'- HEADER_PARAMS =
Parsed header parameters, except for Content-Type, Accept and Authorization
'openapi.headers'- COOKIE_PARAMS =
Parsed cookie parameter values
'openapi.cookies'- REQUEST_BODY =
The parsed request body
'openapi.parsed_request_body'- VERSION =
'1.0.0.beta5'
Class Method Summary collapse
Class Method Details
.load(spec_path, only: nil) ⇒ Object
39 40 41 42 43 44 45 46 |
# File 'lib/openapi_first.rb', line 39 def self.load(spec_path, only: nil) resolved = Dir.chdir(File.dirname(spec_path)) do content = YAML.load_file(File.basename(spec_path)) JsonRefs.call(content, resolve_local_ref: true, resolve_file_ref: true) end resolved['paths'].filter!(&->(key, _) { only.call(key) }) if only Definition.new(resolved, spec_path) end |