加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-17 04:22:01 所属栏目:百科 来源:网络整理
导读:我正在尝试创建一个使用Sinatra的路由,它只接受带有Content-type的POST:application / json但没有成功. 我的方法如下: post '/dogs',:provides = :json do # returns here a json responseend 用curl测试,我看到:provide = :json配置使用Content-Type:a
我正在尝试创建一个使用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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读