Module: OpenapiFirst
- Defined in:
- lib/openapi_first.rb,
lib/openapi_first/app.rb,
lib/openapi_first/inbox.rb,
lib/openapi_first/utils.rb,
lib/openapi_first/router.rb,
lib/openapi_first/version.rb,
lib/openapi_first/coverage.rb,
lib/openapi_first/operation.rb,
lib/openapi_first/responder.rb,
lib/openapi_first/definition.rb,
lib/openapi_first/validation.rb,
lib/openapi_first/response_object.rb,
lib/openapi_first/router_required.rb,
lib/openapi_first/schema_validation.rb,
lib/openapi_first/validation_format.rb,
lib/openapi_first/request_validation.rb,
lib/openapi_first/response_validator.rb,
lib/openapi_first/response_validation.rb,
lib/openapi_first/default_operation_resolver.rb
Defined Under Namespace
Modules: RouterRequired, Utils, ValidationFormat
Classes: App, AppWithOptions, Coverage, DefaultOperationResolver, Definition, Error, Inbox, NotFoundError, NotImplementedError, Operation, OperationResolver, RequestInvalidError, RequestValidation, Responder, ResponseBodyInvalidError, ResponseCodeNotFoundError, ResponseContentTypeNotFoundError, ResponseInvalid, ResponseObject, ResponseValidation, ResponseValidator, Router, SchemaValidation, Validation
Constant Summary
collapse
- OPERATION =
'openapi_first.operation'
- PARAMETERS =
'openapi_first.parameters'
- REQUEST_BODY =
'openapi_first.parsed_request_body'
- INBOX =
'openapi_first.inbox'
- HANDLER =
'openapi_first.handler'
- VERSION =
'0.17.0'
Class Method Summary
collapse
Class Method Details
.app(spec, namespace:, router_raise_error: false, request_validation_raise_error: false, response_validation: false) ⇒ Object
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
# File 'lib/openapi_first.rb', line 35
def self.app(
spec,
namespace:,
router_raise_error: false,
request_validation_raise_error: false,
response_validation: false
)
spec = OpenapiFirst.load(spec) if spec.is_a?(String)
App.new(
nil,
spec,
namespace: namespace,
router_raise_error: router_raise_error,
request_validation_raise_error: request_validation_raise_error,
response_validation: response_validation
)
end
|
.env ⇒ Object
22
23
24
|
# File 'lib/openapi_first.rb', line 22
def self.env
ENV['RACK_ENV'] || ENV['HANAMI_ENV'] || ENV['RAILS_ENV']
end
|
.load(spec_path, only: nil) ⇒ Object
26
27
28
29
30
31
32
33
|
# File 'lib/openapi_first.rb', line 26
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
|
.middleware(spec, namespace:, router_raise_error: false, request_validation_raise_error: false, response_validation: false) ⇒ Object
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
# File 'lib/openapi_first.rb', line 53
def self.middleware(
spec,
namespace:,
router_raise_error: false,
request_validation_raise_error: false,
response_validation: false
)
spec = OpenapiFirst.load(spec) if spec.is_a?(String)
AppWithOptions.new(
spec,
namespace: namespace,
router_raise_error: router_raise_error,
request_validation_raise_error: request_validation_raise_error,
response_validation: response_validation
)
end
|