Method: OpenapiFirst::Definition#validate_response
- Defined in:
- lib/openapi_first/definition.rb
#validate_response(rack_request, rack_response, raise_error: false) ⇒ ValidatedResponse
Validates the response against the API description.
86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
# File 'lib/openapi_first/definition.rb', line 86 def validate_response(rack_request, rack_response, raise_error: false) route = @router.match(rack_request.request_method, resolve_path(rack_request), content_type: rack_request.content_type) return if route.error # Skip response validation for unknown requests response_match = route.match_response(status: rack_response.status, content_type: rack_response.content_type) error = response_match.error validated = if error ValidatedResponse.new(rack_response, error:) else response_match.response.validate(rack_response) end @config.after_response_validation&.each { |hook| hook.call(validated, rack_request, self) } raise validated.error.exception(validated) if raise_error && validated.invalid? validated end |