如何将API应用路由为类似url / something?type =

时间:2018-10-19 14:07:26

标签: ruby-on-rails rails-routing

我正在使用Rails 5.2 API,但对如何进行正确的路由感到有些困惑。

当我调用API时,我正在写: Cookies

我想写些什么: localhost:3001/?type=arrival

但是我不知道我应该更改什么,也不知道这是否正确,因为做API是一种好习惯。

或者应该类似于:localhost:3001/flights?type=arrival

我不确定什么是最好的事情以及如何进行更改。

我的URL/api/v1/flights?type=...

routes.rb

1 个答案:

答案 0 :(得分:0)

设置API时,您很少希望在路径中同时具有子域约束和/api

http://api.example.com/api/v1/flights

似乎有点傻。我的意思是您在api子域上还有什么?

所以要么走一条路:

namespace :api, defaults: { format: :json } do
  namespace :v1 do
    resources :flights, only: [:index]
  end
end

或子域:

namespace :api, defaults: { format: :json }, constraints: { subdomain: 'api' }, path: nil do
  namespace :v1 do
    resources :flights, only: [:index]
  end
end

要将其他REST动词添加到集合中(例如:destroy_all),请将一个块传递给resources

resources :flights, only: [:index] do
  delete '/', action: :destroy_all, on: :collection
end