Beispiele rest json
Version vom 31. Dezember 2022, 11:16 Uhr von Michaelebner (Diskussion | Beiträge) (→Daten von mehreren Seiten zusammenfassen)
Daten von einem REST-Server holen, anzeigen und bearbeiten
Der REST-Server
Unter https://api.predic8.de/shop/products/ ist ein REST-Server zu finden, der als Beispiel-Server der Allgemeinheit zur Verfügung steht. Der Aufruf der URL gibt die folgenden Daten zurück:
{
"meta": {
"count": 32,
"limit": 10,
"page": 1,
"next_url": "/shop/products/?page=2&limit=10"
},
"products": [
{
"name": "Bananas",
"product_url": "/shop/products/3"
},
{
"name": "Oranges",
"product_url": "/shop/products/10"
},
{
"name": "Pineapples",
"product_url": "/shop/products/33"
},
{
"name": "Dried Pineapples",
"product_url": "/shop/products/42"
},
{
"name": "Cranberries",
"product_url": "/shop/products/57"
},
{
"name": "Mango fresh",
"product_url": "/shop/products/62"
},
{
"name": "Raspberries",
"product_url": "/shop/products/90"
},
{
"name": "Cherries",
"product_url": "/shop/products/7"
},
{
"name": "Apple",
"product_url": "/shop/products/18"
},
{
"name": "Green Grapes",
"product_url": "/shop/products/11"
}
]
}
Daten von mehreren Seiten zusammenfassen
Die Daten sind auf mehrere Seiten aufgeteilt. Für unsere Zwecke müssen wir sie zusammenfassen. Dazu eignet sich die Prozedur #http_loop_json.
In solchen Fällen hat es sich bewährt, das erst mal als Konsolen-Anwendung zu realisieren, und das dann in die konkrete Anwendung zu kopieren. Diese Konsolen-Anwendung würde wie folgt aussehen:
#frm c="c_test_json" y=console #code url=https://api.predic8.de/shop/products/ #code nurl="https://api.predic8.de/shop/products/$STREXTR($JSON_VALUE(1,meta.next_url),ffe,/shop/products/)" #code ready=$EMPTY($JSON_VALUE(1,meta.next_url)) #http_loop_json y=get se=N $CODE$ isc=Y m=20 #coutl $JSON_TEXT(1,frm) #cout c="c_test_json executed"
Die Prozedur #http_loop_json verwendet y=get als Method, wir wollen schließlich Daten abfragen. Als url verwenden wir die Seite https://api.predic8.de/shop/products/.