首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Grape版本问题

Grape版本问题
EN

Stack Overflow用户
提问于 2014-12-10 06:00:00
回答 1查看 298关注 0票数 1

我有两个简单的API类:

代码语言:javascript
复制
class API::Root < Grape::API
    version 'v1', :using => :path

    mount API::Appointments => '/appointments'
end

代码语言:javascript
复制
class API::Appointments < API::Base
    get do
    end 
end

问题是API::Appointments生成路由:

代码语言:javascript
复制
GET        /appointments/v1

而不是

代码语言:javascript
复制
GET        /v1/appointments

这是它应该是的样子吗?我做错了什么?与最后相反,版本路径组件不应该在任何其他路径组件之前吗?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2015-01-21 05:52:16

在您给出的示例中,您的资源文件(约会)继承自root.rb文件,该文件使用:path来获取版本。此外,您通过使用mount API::Appointments => '/appointments'挂载到路径,这非常类似于前缀,因此将使用/appointments作为您的路由的前缀,因此您看到的路由是给定设置的预期路由。当我使用Grape对JSON api进行版本化时,我有一个基本的root.rb类,它将挂载我的版本化api。

代码语言:javascript
复制
module API
  class Root < Grape::API
    mount API::V1::Root
  end
end

然后,对于每个额外的API版本,我有另一个root.rb文件,该文件随后挂载该特定API的资源文件。

代码语言:javascript
复制
module API
  module V1
    class Root < Grape::API
      version 'v1' using: :path
      mount API::V1::Appointments
    end
  end
end

通过这种结构,您可以拥有一个资源类

代码语言:javascript
复制
module API
  module V1
    class Appointments < Grape::API
      get do
      end 
    end
  end
end

并将其挂载到路径/v1/appointments

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27389663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档