拆分一个大的 Jira-Rest-Request
Split a big Jira-Rest-Request
我正在寻找机会拆分一个大请求,例如:
rest/api/2/search?jql=(project in (project1, project2, project3....project10)) AND issuetype = Bug AND (component not in (projectA, projectB) OR component = EMPTY)
。结果将包含 > 500 个错误 -> 它非常非常慢。我想让他们有不同的请求(执行请求的方法将用@Asynchronous 注释)但 jql 需要相同。我不想单独搜索 project1、project2...project10。如果有人有解决我的问题的想法,那就太好了。
谢谢:)
能不能不分成两部分?如果您在网页中显示(在不影响性能的情况下显示您可以显示的内容。如果是报告,则逐渐获取所有对象并在完成后显示。
- 获取 JQL 的总计数并仅获取第 2 步所需的最少信息 - 假设其为 900
- 使用分页功能 (maxResults=100) 进行多次调用。
- 处理每个请求。
您需要计算分页。首先获取元数据。
rest/api/2/search?jql=[complete search query]&fields=*none&maxResults=0
你应该得到这样的东西:
{"startAt":0,"maxResults":0,"total":100,"issues":[]}
完全没有字段,只有分页元数据。
比这样创建搜索 URI。
rest/api/2/search?jql=[complete search query]&startAt=0&maxResults=10
rest/api/2/search?jql=[complete search query]&startAt=10&maxResults=10
..etc
注意数据会发生变化,因此您应该做好准备,您不会收到所有数据,并且如果计算成本高昂(特别是 "total"),则不应显示分页元数据。更多Paged API
如果您不想同时运行这两个请求并且需要根据用户请求分页错误,您可以:
- 提出请求,将 'maxResults' 属性 设置为您需要的数量。
- 在下一个请求中,将 'maxResults' 属性 和 'startAt' 设置为相同的值。
- 如果您需要获取更多数据,请使用相同的 'maxResults' 发出新请求,但将 'startAt' 更新为您在之前的请求中获取的错误数。
我正在寻找机会拆分一个大请求,例如:
rest/api/2/search?jql=(project in (project1, project2, project3....project10)) AND issuetype = Bug AND (component not in (projectA, projectB) OR component = EMPTY)
。结果将包含 > 500 个错误 -> 它非常非常慢。我想让他们有不同的请求(执行请求的方法将用@Asynchronous 注释)但 jql 需要相同。我不想单独搜索 project1、project2...project10。如果有人有解决我的问题的想法,那就太好了。
谢谢:)
能不能不分成两部分?如果您在网页中显示(在不影响性能的情况下显示您可以显示的内容。如果是报告,则逐渐获取所有对象并在完成后显示。
- 获取 JQL 的总计数并仅获取第 2 步所需的最少信息 - 假设其为 900
- 使用分页功能 (maxResults=100) 进行多次调用。
- 处理每个请求。
您需要计算分页。首先获取元数据。
rest/api/2/search?jql=[complete search query]&fields=*none&maxResults=0
你应该得到这样的东西:
{"startAt":0,"maxResults":0,"total":100,"issues":[]}
完全没有字段,只有分页元数据。
比这样创建搜索 URI。
rest/api/2/search?jql=[complete search query]&startAt=0&maxResults=10
rest/api/2/search?jql=[complete search query]&startAt=10&maxResults=10
..etc
注意数据会发生变化,因此您应该做好准备,您不会收到所有数据,并且如果计算成本高昂(特别是 "total"),则不应显示分页元数据。更多Paged API
如果您不想同时运行这两个请求并且需要根据用户请求分页错误,您可以:
- 提出请求,将 'maxResults' 属性 设置为您需要的数量。
- 在下一个请求中,将 'maxResults' 属性 和 'startAt' 设置为相同的值。
- 如果您需要获取更多数据,请使用相同的 'maxResults' 发出新请求,但将 'startAt' 更新为您在之前的请求中获取的错误数。