Sha256: d1bc95eeba89ae478430ea550494a1ec78e8edd8ef43c397a91de88f4b2dd90f
Contents?: true
Size: 770 Bytes
Versions: 2
Compression:
Stored size: 770 Bytes
Contents
require "sinatra/swagger/swagger_linked" module Sinatra module Swagger module SpecEnforcer def self.registered(app) app.register Swagger::SwaggerLinked app.after do next unless response.content_type =~ %r{^application/(?:.+\+)?json$} next unless body = JSON.parse(response.body.first) rescue nil next if swagger_spec.nil? schema = schema_from_spec_at("responses/#{response.status}/schema") next if schema.nil? begin JSON::Validator.validate!(schema, body) rescue JSON::Schema::ValidationError => e e.message = "Response JSON did not match the Swagger schema: #{e.message}" raise e end end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
sinatra-swagger-0.2.2 | lib/sinatra/swagger/spec_enforcer.rb |
sinatra-swagger-0.2.1 | lib/sinatra/swagger/spec_enforcer.rb |