Jira / Python нумерация страниц и циклы - PullRequest
0 голосов
/ 18 декабря 2018

Мне нужно зациклить мой вызов API, пока я не соберу все данные, которые мне нужны, поскольку Jira возвращает только 50 за раз.

Я хочу, чтобы цикл продолжался до тех пор, пока 'total' не станет меньше 'startAt' (я думаю)

Я получаю данные обратно, но, похоже,быть в цикле, чтобы получить все данные.

import json
import requests
import urllib3
import math


url = 'https://mydomain.atlassian.net/rest/api/2/search'

headers = { 'Content-Type' : 'application/json',
                'Authorization' : 'Basic 012336',
                'Postman-Token': "0123456789"
                 }

parameters = {
            'jql' : 'project IN (A, B, C, D, E, F, G, H, I, J, K, L, M) AND issueType=incident AND statusCategory!=Done',
            'startAt': 0,
            'maxResults' : 50,
            'fields' : "key,status,project,priority,issuetype,created,statuscategory"
            }

response = requests.request("GET", url, headers=headers, params=parameters)

jira_data = response.json()

jira_pretty = json.dumps(json.loads(response.text), sort_keys=True, indent=4)

int_total = jira_data.get('total')

int_maxResults = jira_data.get('maxResults')

int_startAt = parameters.get('startAt')

number_pages = math.ceil(int(int_total)/int(int_maxResults))

while int_startAt < int_total:
    int_startAt += int_maxResults
    if int_total <= int_startAt:
        break


print(jira_pretty)

1 Ответ

0 голосов
/ 19 декабря 2018

На основе предоставленного фрагмента кода необходимо обновлять параметр startAt каждый цикл перед отправкой следующего запроса GET.Если вы хотите сделать меньше циклов, вы можете установить для параметра maxResults значение 100, что является максимальным значением.

Немного отойдя назад, мне не ясно, как вы выполняете циклическое выполнение нескольких запросов,по крайней мере, на основе предоставленного кода.

...