Something Mi ddleware def initialize(app, options = {}) @app = app end def call(env) # Do something @app.call(env) end end ͭ·Γ ͦ΅͘ʹΔͱ SFRSFTͱಉظ͢Δ ࠷༧शձ
= Set[ '/v1/your/sse/endpoint' ].freeze def initialize(app, options = {}) @app = app @ m i ddleware = Com mi ttee: :Mi ddleware : : ResponseValidation.ne w( app, options) end def call(env) # IGNORE_LI S T ʹؚ·ΕΔPATH_INFOͷ߹Com m i ttee: : M i ddleware : : ResponseValidation ΛεΩοϓ͢Δ return @app.call(env) if IGNORE_LI S T . include?(env['PATH_INFO']) @ m i ddleware.call(env) end end ࠷༧शձ
strea m i ng_response?(headers) response = Rack :: BodyProxy.ne w( response) do begin validate(request, status, headers, response) rescue = > e handle_exception(e, request.env) raise e if @raise end end else begin validate(request, status, headers, response) rescue Com m i ttee :: InvalidResponse handle_exception ($ ! , request.env) raise if @raise return @error_class.ne w ( 500, :invalid_response, $ ! . m essage).render unless @ i gnore_error rescue JSON : : ParserError handle_exception ($ ! , request.env) raise Com m i ttee :: InvalidResponse if @raise return @error_class.ne w ( 500, :invalid_response, "Response wasn't valid JSON.").render unless @i gnore_error end end [status, headers, response] end ࠷༧शձ
strea m i ng_response?(headers) response = Rack :: BodyProxy.ne w( response) do begin validate(request, status, headers, response) rescue = > e handle_exception(e, request.env) raise e if @raise end end else begin validate(request, status, headers, response) rescue Com m i ttee :: InvalidResponse handle_exception ($ ! , request.env) raise if @raise return @error_class.ne w ( 500, :invalid_response, $ ! . m essage).render unless @ i gnore_error rescue JSON : : ParserError handle_exception ($ ! , request.env) raise Com m i ttee :: InvalidResponse if @raise return @error_class.ne w ( 500, :invalid_response, "Response wasn't valid JSON.").render unless @i gnore_error end end [status, headers, response] end ࠷༧शձ
BodyProxy.ne w( response) do begin validate(request, status, headers, response) rescue => e handle_exception(e, request.env) raise e if @raise end end else ࠷༧शձ