ruby – 使用Sinatra创建一条路径,只接受某种内容类型

前端之家收集整理的这篇文章主要介绍了ruby – 使用Sinatra创建一条路径,只接受某种内容类型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试创建一个使用Sinatra的路由,它只接受带有Content-type的POST:application / json但没有成功.

我的方法如下:

post '/dogs',:provides => :json do
  # returns here a json response
end

用curl测试,我看到:provide => :json配置使用Content-Type:application / json响应的路由.

这是正确的,因为我还希望用POST请求的JSON消息进行响应,但我真的需要这条路由只响应具有Content-Type:application / json的POST请求,而不是响应其他人(例如Content-Type) :application / xml).

在Sinatra中是否有任何方法限制路由只接受具有特定内容类型的请求?

解决方法

请求不包含“Content-Type”标头,而是包含“Accept”. Sinatra基本上只响应包含“application / json”的“Accept”请求.只想确认一下:
post '/gods',:provides => :json do
  pass unless request.accept? 'application/json'
...
end
原文链接:https://www.f2er.com/ruby/268623.html

猜你在找的Ruby相关文章