module Scorpio::OpenAPI::V3::Operation
Describes a single API operation on a path.
github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#operationObject
Public Instance Methods
request_schema(media_type: self.request_media_type)
click to toggle source
@return [JSI::Schema]
# File lib/scorpio/openapi/operation.rb, line 209 def request_schema(media_type: self.request_media_type) # TODO typechecking on requestBody & children schema_object = requestBody && requestBody['content'] && requestBody['content'][media_type] && requestBody['content'][media_type]['schema'] schema_object ? JSI::Schema.from_object(schema_object) : nil end
request_schemas()
click to toggle source
@return [Array<JSI::Schema>]
# File lib/scorpio/openapi/operation.rb, line 219 def request_schemas if requestBody && requestBody['content'] # oamt is for Scorpio::OpenAPI::V3::MediaType oamts = requestBody['content'].values.select { |oamt| oamt.key?('schema') } oamts.map { |oamt| JSI::Schema.from_object(oamt['schema']) } else [] end end
response_schema(status: , media_type: )
click to toggle source
@return [JSI::Schema]
# File lib/scorpio/openapi/operation.rb, line 230 def response_schema(status: , media_type: ) oa_response = self.oa_response(status: status) oa_media_types = oa_response ? oa_response['content'] : nil # Scorpio::OpenAPI::V3::MediaTypes oa_media_type = oa_media_types ? oa_media_types[media_type] : nil # Scorpio::OpenAPI::V3::MediaType oa_schema = oa_media_type ? oa_media_type['schema'] : nil # Scorpio::OpenAPI::V3::Schema oa_schema ? JSI::Schema.new(oa_schema) : nil end