Grape API (swagger doc) - 'desc' 的全局配置
Grape API (swagger doc) - Global configuration of 'desc'
忙碌的一周很有趣。我正在做一个 Rails 项目并包含 Grape
来实现 API.
API 有 2 个部分
- 无需授权(无 headers)
- 需要授权
我设置了应用程序,一切正常...
- 葡萄
- 葡萄招摇
- 葡萄招摇Rails
为了说明 header 是必需的,我使用了类似这样的东西...
class ProfilesApi < Grape::API
resource :profiles do
desc 'List all profiles' do
headers Authorization: {
description: 'Validates identity through JWT provided in auth/login',
required: true
}
end
get do
present User.all, with: Presenters::ProfilePresenter
end
end
end
现在的问题是我这个描述里有很多类似的可挂载API类.
有没有一种方法可以使这种通用(有点继承),这样我就不需要用每个 Grape 方法来定义它了。
desc 'List all profiles' do
headers Authorization: {
description: 'Validates identity through JWT provided in auth/login',
required: true
}
end
提前致谢,祝大家周末愉快。
是的,有办法。我通过在 class API
中定义一个方法来实现这一点,这样它就可以在从 API
继承的所有内容中访问。类似于:
module Myapp
class API < Grape::API
def self.auth_headers
{ Authorization: { description: 'Validates identity through JWT provided in auth/login',required: true}}
end
end
end
你可以这样访问它:
desc "List all profiles", {
headers: Myapp::API.auth_headers
}
当然,还有更多方法,但它们取决于您的实现。
我认为这可能是 grape-api 东西的更新版本,我不得不让它工作:
desc 'My description text' do
headers Authorization: {description: "pass the access token as Bearer", required: true }
end
忙碌的一周很有趣。我正在做一个 Rails 项目并包含 Grape
来实现 API.
API 有 2 个部分
- 无需授权(无 headers)
- 需要授权
我设置了应用程序,一切正常...
- 葡萄
- 葡萄招摇
- 葡萄招摇Rails
为了说明 header 是必需的,我使用了类似这样的东西...
class ProfilesApi < Grape::API
resource :profiles do
desc 'List all profiles' do
headers Authorization: {
description: 'Validates identity through JWT provided in auth/login',
required: true
}
end
get do
present User.all, with: Presenters::ProfilePresenter
end
end
end
现在的问题是我这个描述里有很多类似的可挂载API类.
有没有一种方法可以使这种通用(有点继承),这样我就不需要用每个 Grape 方法来定义它了。
desc 'List all profiles' do
headers Authorization: {
description: 'Validates identity through JWT provided in auth/login',
required: true
}
end
提前致谢,祝大家周末愉快。
是的,有办法。我通过在 class API
中定义一个方法来实现这一点,这样它就可以在从 API
继承的所有内容中访问。类似于:
module Myapp
class API < Grape::API
def self.auth_headers
{ Authorization: { description: 'Validates identity through JWT provided in auth/login',required: true}}
end
end
end
你可以这样访问它:
desc "List all profiles", {
headers: Myapp::API.auth_headers
}
当然,还有更多方法,但它们取决于您的实现。
我认为这可能是 grape-api 东西的更新版本,我不得不让它工作:
desc 'My description text' do
headers Authorization: {description: "pass the access token as Bearer", required: true }
end