【发布时间】:2019-03-07 22:30:55
【问题描述】:
我正在从 AZURE 资源加载信息(总共有大约 3700 条记录,包含 10 个属性)。响应提供了一个标头 (x-ms-continuation: {"token":"-RID:R-UdANZutGzxAwAAAAAAA==#RT:1#TRC:1000","range":{"min":"","max ":"FF"}}) 表示要加载更多项目 + 标头必须添加到下一个请求,以便检索下一个 1000 条记录。数据应存储在变量(帐户)中,因此仅在加载应用程序时获取一次数据。
在页面初始化函数:public getAccounts() 触发 load() 函数返回前 1000 条记录并将它们存储在帐户中。 在注释掉的部分有 fetchAccounts 我试图让它工作。
export class AccountsService {
private accounts: AccountModel = null;
constructor(private http: HttpClient) { }
/* public getAccounts2() {
console.log(this.accounts);
return this.accounts;
}
loadAccounts() {
this.fetchAccounts().subscribe(accounts => this.accounts.next(accounts));
}
public fetchAccounts(): Observable<AccountModel[]> {
return this.http.get<AccountModel>(AZURE_URL + 'zuora/read', { headers })
.pipe(
expand(accounts => {
if (!accounts) {
console.log(accounts.headers.get('x-ms-continuation'));
return EMPTY;
}
return this.http.get<AccountModel>(AZURE_URL + 'zuora/read', { headers });
}),
map(accounts => accounts.Documents),
reduce((accData, data) => accData.concat(data), []),
);
} */
public getAccounts(): AccountModel {
return this.accounts;
}
load() {
console.log('loading account data');
return new Promise((resolve, reject) => {
this.http
.post<any>(AZURE_URL + 'zuora/read', {
'query': 'SELECT * FROM products'
}
, { headers })
.pipe(map(data => data))
.subscribe(data => {
this.accounts = data;
console.log('data loading complete');
resolve(true);
});
});
}
}
这是来自 AZURE API 文档的 Curl 参考 @ECHO 关闭
curl -v -X POST "https://jangoepelapitest.azure-api.net/zuora/read"
-H "Ocp-Apim-Subscription-Key: {subscription key}"
--data-ascii "{body}"
这是 API 定义:
{
"openapi": "3.0.1",
"info": {
"title": "cosmos zuora",
"description": "",
"version": "1.0"
},
"servers": [
{
"url": "https://xxxxxxx.azure-api.net/zuora"
}
],
"paths": {
"/read": {
"post": {
"summary": "Read",
"description": "query accounts",
"operationId": "5c1a4f71153ff8904fd4106a",
"requestBody": {
"content": { }
},
"responses": { }
}
},
"/write": {
"post": {
"summary": "write",
"description": "query accounts",
"operationId": "5c1b45759ba2ebb7bba2c13d",
"requestBody": {
"content": { }
},
"responses": { }
}
},
"/copy-5c1b6-of-/read": {
"post": {
"summary": "Read (clone)",
"description": "query accounts",
"operationId": "5c1b6b9feea787d74728b102",
"requestBody": {
"content": { }
},
"responses": { }
}
}
},
"components": {
"securitySchemes": {
"apiKeyHeader": {
"type": "apiKey",
"name": "Ocp-Apim-Subscription-Key",
"in": "header"
},
"apiKeyQuery": {
"type": "apiKey",
"name": "subscription-key",
"in": "query"
}
}
},
"security": [
{
"apiKeyHeader": [ ]
},
{
"apiKeyQuery": [ ]
}
]
}
所有记录都应从天蓝色资源加载并存储在帐户中。
【问题讨论】:
-
请发布指向您查询的 AZURE Api 端点文档的链接。
-
嗨@fridoo 我更新了描述。感谢您的支持!
-
为什么没有链接?我正在寻找有关返回类型、标头等的文档...