在同一资源 RAML 下记录多个 POST 请求 OAUTH
Documenting multiple POST request for OAUTH under same resource RAML
我意识到标题可能有点令人困惑,所以这就是我想要实现的目标:
我需要使用 RAML 记录 token_grant 和 token_refresh 方法,这两个方法都是 POST 调用。
token_grant:生成第一次OAuth令牌
token_refresh: 刷新访问令牌
它们的查询参数不同,当然 return 结果也不同。问题是它们都在同一个资源下,RAML 只允许对每个资源进行 1 POST 次调用:
/oauth/token
有什么方法可以解决这个问题,仅限于一次 post 调用?
也许有条件取决于查询参数?
这是token_grant
的模板
/oauth/token:
post:
description:
headers:
Authorization:
type: "string"
default: "[client_id:]"
required: true
example:
queryParameters:
grant_type:
type: string
required: true
example: ''
code:
type: string
required: true
example: ''
responses:
200:
body:
application/json:
example: |
这里是 token_refresh 的模板:
/oauth/token:
post:
description:
headers:
Authorization:
type: "string"
default: "[client_id:]"
required: true
example:
queryParameters:
grant_type:
type: string
required: true
example: ''
//Main difference1
refresh_token:
type: string
required: true
example: ''
responses:
200:
body:
application/json:
//Main difference 2
example: "a different response goes here"
所以主要问题是如何将它们放在
下
/oauth/token/
感谢任何帮助
非常感谢!
您无需在 RAML 中指定 OAuth2 协议,因为默认支持此安全方案:https://github.com/raml-org/raml-spec/blob/master/raml-0.8.md#security
您只需要定义 URI、授权和范围:https://github.com/raml-org/raml-spec/blob/master/raml-0.8.md#oauth-20 and the header in which you expect the access token: https://github.com/raml-org/raml-spec/blob/master/raml-0.8.md#declaration-1
任何支持 OAuth2 的客户端都将获得足够的信息来使用您的 API,因为 OAuth2 规范本身描述了 code/token 资源交互。
我意识到标题可能有点令人困惑,所以这就是我想要实现的目标:
我需要使用 RAML 记录 token_grant 和 token_refresh 方法,这两个方法都是 POST 调用。
token_grant:生成第一次OAuth令牌 token_refresh: 刷新访问令牌
它们的查询参数不同,当然 return 结果也不同。问题是它们都在同一个资源下,RAML 只允许对每个资源进行 1 POST 次调用:
/oauth/token
有什么方法可以解决这个问题,仅限于一次 post 调用? 也许有条件取决于查询参数?
这是token_grant
的模板/oauth/token:
post:
description:
headers:
Authorization:
type: "string"
default: "[client_id:]"
required: true
example:
queryParameters:
grant_type:
type: string
required: true
example: ''
code:
type: string
required: true
example: ''
responses:
200:
body:
application/json:
example: |
这里是 token_refresh 的模板:
/oauth/token:
post:
description:
headers:
Authorization:
type: "string"
default: "[client_id:]"
required: true
example:
queryParameters:
grant_type:
type: string
required: true
example: ''
//Main difference1
refresh_token:
type: string
required: true
example: ''
responses:
200:
body:
application/json:
//Main difference 2
example: "a different response goes here"
所以主要问题是如何将它们放在
下/oauth/token/
感谢任何帮助 非常感谢!
您无需在 RAML 中指定 OAuth2 协议,因为默认支持此安全方案:https://github.com/raml-org/raml-spec/blob/master/raml-0.8.md#security
您只需要定义 URI、授权和范围:https://github.com/raml-org/raml-spec/blob/master/raml-0.8.md#oauth-20 and the header in which you expect the access token: https://github.com/raml-org/raml-spec/blob/master/raml-0.8.md#declaration-1
任何支持 OAuth2 的客户端都将获得足够的信息来使用您的 API,因为 OAuth2 规范本身描述了 code/token 资源交互。