Я очень неопытный пользователь REST API, запросов и python, так что терпите меня. Мне удалось отправить запрос GET, используя запросы через python к этому REST API, который был разработан с помощью Postman. Я получаю результаты хорошо, но только для первой страницы (только 50 пунктов). Я знаю, что все, что мне нужно сделать, чтобы получить больше результатов, - это добавить «? Page = 2» и т. Д. К URL, но до сих пор я не смог управлять l oop. Мне кажется, что в этом API нет функции nextUrl или общего количества страниц, поэтому я немного растерялся. Это то, что у меня есть:
from getpass import getpass
import requests
usr = input('Inform user: ')
pwd = getpass('Inform password : ')
url = 'https://api.inventsys.com.br/v4/login'
payload = "{\n \"username\": \"" + usr + "\",\n \"password\": \"" + pwd + "\"\n}"
headers = {
'Account': 'my-user',
'Content-Type': 'application/json',
}
r = requests.request('POST', url, headers = headers, data = payload, allow_redirects=False)
mytoken = r.json()['token']
projectid = input('Inform project ID (10762): ')
url = 'https://api.inventsys.com.br/v4/projects/'+projectid+'/items'
payload = {}
headers = {
'Account': 'my-user',
'Token': mytoken,
}
ativos = requests.request('GET', url, headers = headers, data = payload, allow_redirects=False)
print(ativos.json()['result'])
print(ativos.text)
print(ativos.headers)
, что дает следующий результат (я сократил результат, поэтому он показывает только одну запись из 50):
Inform project ID (10762): 10762
ok
{
"items": [
{
"id": 300457,
"item_id_parent": null,
"reference": "",
"subreference1": "CAMS\/2",
"subreference2": "CAMS\/2",
"reference_alpha": null,
"reference_numeric": null,
"oid": "CAMS\/2",
"code": null,
"code_custom": null,
"name": "284",
"image": "https:\/\/static.inventsys.com.br\/278\/thumb\/f-3298939-200x200c.jpg",
"situations": [],
"project_id": 10762,
"project": {
"id": 10762,
"name": "Fauna EGR",
"color": null
},
"category_id": 20685,
"category": {
"id": 20685,
"name": "EGR FAUNA - Armadilhas"
},
"area_id": null,
"area": null,
"location": {
"lat": -30.137237548828,
"lng": -50.90788269043,
"address": {
"region": "RS",
"city": "Viamão",
"district": null,
"zipcode": null,
"street": "Rodovia Tapir Rocha",
"street_number": null,
"desc": null,
"full": "Rodovia Tapir Rocha Viamão \/ BR"
}
},
"event_last": null,
"description": null,
"search_terms": "CAMS\/2 284 Fauna EGR EGR FAUNA - Armadilhas Rodovia Tapir Rocha Viamão \/ BR",
"info": [
{
"id": 42725,
"name": "Observacoes",
"type": "longtext",
"value": "Ver observações no odk",
"fvalue": "Ver observações no odk",
"description": null,
"ikey": null,
"group": "Fauna EGR",
"preload": false,
"filling": false,
"primary": false,
"created": "2019-10-01T17:13:04+00:00"
},
{
"id": 44542,
"name": "Data de instalacao",
"type": "date",
"value": "2019-10-01",
"fvalue": "01\/10\/2019",
"description": null,
"ikey": null,
"group": "Fauna EGR",
"preload": false,
"filling": false,
"primary": false,
"created": "2019-10-01T17:13:04+00:00"
},
{
"id": 44543,
"name": "IDcartao",
"type": "text",
"value": "Ste 04",
"fvalue": "Ste 04",
"description": null,
"ikey": null,
"group": "Fauna EGR",
"preload": false,
"filling": false,
"primary": true,
"created": "2019-10-01T17:13:04+00:00"
},
{
"id": 44544,
"name": "IDcamera",
"type": "text",
"value": "1",
"fvalue": "1",
"description": null,
"ikey": null,
"group": "Fauna EGR",
"preload": false,
"filling": false,
"primary": false,
"created": "2019-10-01T17:13:04+00:00"
},
{
"id": 44545,
"name": "IDdobueiro",
"type": "text",
"value": "284",
"fvalue": "284",
"description": null,
"ikey": null,
"group": "Fauna EGR",
"preload": false,
"filling": false,
"primary": false,
"created": "2019-10-01T17:13:04+00:00"
},
{
"id": 44546,
"name": "Estrada",
"type": "longtext",
"value": "Ers-040",
"fvalue": "Ers-040",
"description": null,
"ikey": null,
"group": "Fauna EGR",
"preload": false,
"filling": false,
"primary": false,
"created": "2019-10-01T17:13:04+00:00"
},
{
"id": 44547,
"name": "Foto Armadilha",
"type": "photo",
"value": "3298938",
"fvalue": "3298938",
"description": null,
"ikey": null,
"group": "Fauna EGR",
"preload": false,
"filling": false,
"primary": false,
"created": "2019-10-01T17:13:04+00:00"
},
{
"id": 44548,
"name": "gps Latitude",
"type": "text",
"value": null,
"fvalue": null,
"description": null,
"ikey": null,
"group": "Fauna EGR",
"preload": false,
"filling": false,
"primary": false,
"created": "2019-10-01T17:13:04+00:00"
},
{
"id": 44549,
"name": "GPS Longitude",
"type": "text",
"value": null,
"fvalue": null,
"description": null,
"ikey": null,
"group": "Fauna EGR",
"preload": false,
"filling": false,
"primary": false,
"created": "2019-10-01T17:13:04+00:00"
},
{
"id": 44550,
"name": "gps Altitude",
"type": "text",
"value": null,
"fvalue": null,
"description": null,
"ikey": null,
"group": "Fauna EGR",
"preload": false,
"filling": false,
"primary": false,
"created": "2019-10-01T17:13:04+00:00"
},
{
"id": 44551,
"name": "gps Accuracy",
"type": "text",
"value": null,
"fvalue": null,
"description": null,
"ikey": null,
"group": "Fauna EGR",
"preload": false,
"filling": false,
"primary": false,
"created": "2019-10-01T17:13:04+00:00"
}
],
"files": [
{
"id": 3298939,
"url_orig": "https:\/\/static.inventsys.com.br\/278\/file\/cb\/cb7c7aebac.jpg",
"url_low": "https:\/\/static.inventsys.com.br\/278\/thumb\/f-3298939-200x200c.jpg",
"type": "photo",
"format": "jpg",
"size": 1040359,
"orig_name": "12559f77-4c11-4fe1-8b86-ce299a8e3bb7.jpg",
"description": null
}
],
"nsubitems": null,
"nevents": "0",
"updated_at": "2019-10-01T17:13:04+00:00",
"created_at": "2019-10-01T17:13:04+00:00",
"deleted_at": null
}
],
"nitems": 1505,
"current_time": "2020-02-08T00:53:42+00:00",
"result": "ok"
}
{'Server': 'nginx/1.15.8', 'Date': 'Sat, 08 Feb 2020 00:53:42 GMT', 'Content-Type': 'application/json', 'Transfer-Encoding': 'chunked', 'Connection': 'keep-alive', 'Vary': 'Accept-Encoding, Accept-Encoding', 'Set-Cookie': 'PHPSESSID=pj9d35fhigr6d61nfqcfd05qc6; path=/', 'Expires': 'Thu, 19 Nov 1981 08:52:00 GMT', 'Cache-Control': 'no-store, no-cache, must-revalidate, no-cache, private', 'Pragma': 'no-cache', 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Credentials': 'true', 'Content-Encoding': 'gzip'}
Как я могу получить все 1505 предметов, выполнив все операции oop? Большое спасибо!