2
1
0
1 回答
- 210
めんどくさいのですが、結果が空になるまでページング処理で取得していくしかありません。
https://developer.atlassian.com/server/confluence/pagination-in-the-rest-api/
- 1回目:start=0&limit=200
- 2回目:start=200&limit=200
- ...
返却される json の _links > next に次のURLが返却されているのでそれを利用するのが便利かと思います。
以降細かい話ですが、REST APIの limit について細かい条件がドキュメントに書いてないんですよね…。
システム側でリミットがかかる場合がある程度で、具体的な閾値がわかりませんよね。
https://docs.atlassian.com/atlassian-confluence/REST/6.6.0/#content-getContent
limit
int Default: 25
the limit of the number of items to return, this may be restricted by fixed system limits
ドキュメントを確認しても具体的な内容はすぐ見つけられないし不親切ですね…
そのためServer版(Cloud版の場合はまた違う可能性もあります)で実装を確認してみましたが、以下の仕様みたいです。
- リクエストパラメータに expand を指定しないと 500 件まで一回で取得できる
- リクエストパラメータに expand を指定すると 200 件までは一回で取得できる
- リクエストパラメータに expand を指定するかつ body を指定すると 100 件までは一回で取得できる
全件取得できてしまうと処理負荷がかかる場合があり
expandで情報量が多くなると、その負荷がよりかかるための対策ですね。
- ka2
ありがとうございます、解決しました!
コメントを追加...
通常だと、/rest/api/content?postingDay=2018-02-22&expand=space,version,container&limit=xxx
のように取得すると思うのですが、これでは、私の環境では、200件までしか取得できません。
どのように全件取得することができるのでしょうか?