我有两个简单的API类:
class API::Root < Grape::API
version 'v1', :using => :path
mount API::Appointments => '/appointments'
end和
class API::Appointments < API::Base
get do
end
end问题是API::Appointments生成路由:
GET /appointments/v1而不是
GET /v1/appointments这是它应该是的样子吗?我做错了什么?与最后相反,版本路径组件不应该在任何其他路径组件之前吗?
谢谢
发布于 2015-01-21 05:52:16
在您给出的示例中,您的资源文件(约会)继承自root.rb文件,该文件使用:path来获取版本。此外,您通过使用mount API::Appointments => '/appointments'挂载到路径,这非常类似于前缀,因此将使用/appointments作为您的路由的前缀,因此您看到的路由是给定设置的预期路由。当我使用Grape对JSON api进行版本化时,我有一个基本的root.rb类,它将挂载我的版本化api。
module API
class Root < Grape::API
mount API::V1::Root
end
end然后,对于每个额外的API版本,我有另一个root.rb文件,该文件随后挂载该特定API的资源文件。
module API
module V1
class Root < Grape::API
version 'v1' using: :path
mount API::V1::Appointments
end
end
end通过这种结构,您可以拥有一个资源类
module API
module V1
class Appointments < Grape::API
get do
end
end
end
end并将其挂载到路径/v1/appointments
https://stackoverflow.com/questions/27389663
复制相似问题