我正在使用Rails 5.2 API,但对如何进行正确的路由感到有些困惑。
当我调用API时,我正在写:
Cookies
我想写些什么:
localhost:3001/?type=arrival
但是我不知道我应该更改什么,也不知道这是否正确,因为做API是一种好习惯。
或者应该类似于:localhost:3001/flights?type=arrival
我不确定什么是最好的事情以及如何进行更改。
我的URL/api/v1/flights?type=...
:
routes.rb
答案 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