Ruby on rails Grape API:创建后返回位置标头
POST请求应创建资源并返回指向所创建资源的“位置”标头 我在rails中使用GrapeAPI,并问自己返回创建的资源URI的最佳方法是什么。 grape是否提供了一种无需手动设置即可获取资源URI的方法Ruby on rails Grape API:创建后返回位置标头,ruby-on-rails,grape-api,Ruby On Rails,Grape Api,POST请求应创建资源并返回指向所创建资源的“位置”标头 我在rails中使用GrapeAPI,并问自己返回创建的资源URI的最佳方法是什么。 grape是否提供了一种无需手动设置即可获取资源URI的方法 resource :blup do post '/' do blup = Blup.create(first_name: 'Jamie') if blup.present? header 'Location', 'HERE blup URI' end
resource :blup do
post '/' do
blup = Blup.create(first_name: 'Jamie')
if blup.present?
header 'Location', 'HERE blup URI'
end
end
end
目前我还没有找到比这更好的:
header 'Location', "#{request.url}/#{blup.id}"
但仅当request.url是ressource根URI时才起作用。(例如在一个POST请求中)虽然我不知道Grape给RubyonRails API添加了什么,但我也遇到了同样的问题,我找到了答案。 要在创建后在标题中提供位置,可以添加:
render location:specific\u thing\u i\u am\u寻找url(@thing)
你可以通过运行
rake routes
尝试Rails.application.routes.url\u helpers.blup\u url blup.id