magritte REST 配置的完整示例?
Full example of magritte REST config?
我们正在通过 magritte-rest-v2
设置休息集成。
文档涵盖了身份验证和进行 rest 调用,但是没有完整的示例配置,我似乎无法让它工作。
任何人都可以共享工作配置以供参考?我的用例非常简单:令牌身份验证和返回对象的分页列表。
我手头没有分页示例,但这里有一个没有。找到答案后,我会编辑此答案。
type: magritte-rest-v2
sourceMap:
my_api:
type: magritte-rest-auth-parameters-source
url: 'https://api.yourserver.io/foo/bar/'
parameters:
api_key: '{{api_key}}'
您需要区分身份验证和寻呼呼叫。身份验证由您的来源定义,您可以将其设置为 fsmf 显示:
type: magritte-rest-v2
sourceMap:
my_api:
type: magritte-rest
headers:
Authorization: 'Bearer {{token}}'
url: "https://some-api.com/"
这将确保使用此源对 API 进行的所有调用都将令牌附加为 header。
接下来您需要设置同步,它将负责进行相关端点调用。此处的设置取决于您的端点如何处理分页。在文档中,您会找到同步示例
- Page-based API
- Offset-based API
- Next-Page link-based API
其中涵盖了最常见的分页设置。
这里是一个带有 oauth2 调用的来源示例,用于检索 access_token,然后将其放入 header:
type: magritte-rest-v2
sourceMap:
auth_source:
type: magritte-rest
url: 'https://auth.api.com/'
timeoutInMinutes: 3
proxy: 'http://proxy.com'
data_source:
type: magritte-rest-auth-call-source
proxy: 'http://main.api.com/'
url: 'http://proxy.com'
headers:
Authorization: 'Bearer {%token%}'
Accept: application/json
authCalls:
- source: auth_source
type: magritte-rest-call
method: POST
path: connect/token
headers:
Authorization: 'Basic {{basic_auth_secret}}'
formBody:
username: '{{username}}'
password: '{{password}}'
grant_type: password
scope: customer-api
extractor:
- type: magritte-rest-json-extractor
assign:
token: /access_token
此配置每页拉回 50 个对象:
type: rest-source-adapter2
restCalls:
- type: magritte-paging-inc-param-call
method: GET
path: search
paramToIncrease: startAt
increaseBy: 50
initValue: 0
parameters:
startAt: '{%startAt%}'
extractor:
- type: json
assign:
issues: /issues
allowNull: true
condition:
type: magritte-rest-non-empty-condition
var: issues
maxIterationsAllowed: 4096
cacheToDisk: false
oneFilePerResponse: false
它生成的原始数据集如下所示:
... 其中 response
是完整响应 JSON 并且分页数据在 response.issues
.
中
我们正在通过 magritte-rest-v2
设置休息集成。
文档涵盖了身份验证和进行 rest 调用,但是没有完整的示例配置,我似乎无法让它工作。
任何人都可以共享工作配置以供参考?我的用例非常简单:令牌身份验证和返回对象的分页列表。
我手头没有分页示例,但这里有一个没有。找到答案后,我会编辑此答案。
type: magritte-rest-v2
sourceMap:
my_api:
type: magritte-rest-auth-parameters-source
url: 'https://api.yourserver.io/foo/bar/'
parameters:
api_key: '{{api_key}}'
您需要区分身份验证和寻呼呼叫。身份验证由您的来源定义,您可以将其设置为 fsmf 显示:
type: magritte-rest-v2
sourceMap:
my_api:
type: magritte-rest
headers:
Authorization: 'Bearer {{token}}'
url: "https://some-api.com/"
这将确保使用此源对 API 进行的所有调用都将令牌附加为 header。
接下来您需要设置同步,它将负责进行相关端点调用。此处的设置取决于您的端点如何处理分页。在文档中,您会找到同步示例
- Page-based API
- Offset-based API
- Next-Page link-based API
其中涵盖了最常见的分页设置。
这里是一个带有 oauth2 调用的来源示例,用于检索 access_token,然后将其放入 header:
type: magritte-rest-v2
sourceMap:
auth_source:
type: magritte-rest
url: 'https://auth.api.com/'
timeoutInMinutes: 3
proxy: 'http://proxy.com'
data_source:
type: magritte-rest-auth-call-source
proxy: 'http://main.api.com/'
url: 'http://proxy.com'
headers:
Authorization: 'Bearer {%token%}'
Accept: application/json
authCalls:
- source: auth_source
type: magritte-rest-call
method: POST
path: connect/token
headers:
Authorization: 'Basic {{basic_auth_secret}}'
formBody:
username: '{{username}}'
password: '{{password}}'
grant_type: password
scope: customer-api
extractor:
- type: magritte-rest-json-extractor
assign:
token: /access_token
此配置每页拉回 50 个对象:
type: rest-source-adapter2
restCalls:
- type: magritte-paging-inc-param-call
method: GET
path: search
paramToIncrease: startAt
increaseBy: 50
initValue: 0
parameters:
startAt: '{%startAt%}'
extractor:
- type: json
assign:
issues: /issues
allowNull: true
condition:
type: magritte-rest-non-empty-condition
var: issues
maxIterationsAllowed: 4096
cacheToDisk: false
oneFilePerResponse: false
它生成的原始数据集如下所示:
... 其中 response
是完整响应 JSON 并且分页数据在 response.issues
.