问题描述
我需要为工作模板获取所有相关工作。 API 每页最多只能返回 200 个结果。
有没有人用 URI 模块处理过 API 分页?
如何使用名为 page_number 的变量简单地迭代页数?
在我的代码下面:
- name: List related jobs for job template
uri:
url: http://localhost{{ api_for_job_template.json.related.jobs }}?page_size=200&page={{ page_number }}
force_basic_auth: yes
user: "{{ user }}"
password: "{{ password }}"
body_format: json
register: jobs_info
解决方法
好的,我找到了一种获取所有页面的方法。 在一项任务中,我从 API 中获取作业数并将其除以每页返回的记录数。接下来在uri中使用“with_sequence”逐页迭代。只需要将其四舍五入并转换为 int。
- name: List related jobs for job template
uri:
url: http://localhost{{ api_for_job_template.json.related.jobs }}?page_size={{ page_size }}&page={{ item }}
force_basic_auth: yes
user: "{{ user }}"
password: "{{ password }}"
body_format: json
register: jobs_info
with_sequence: start=1 end="{{ end_at }}"
vars:
- end_at: "{{ ((jobs_count.json.count / 20) | round(0,'ceil')) | int }}"