Flowers API: Dokumente aus Objekten einer Liste abrufen
Diese Anleitung erklärt, wie man mit der Resource Management API Objekte aus einer Liste abruft und Dateien aus Upload-Charakteristiken herunterlädt.
API Dokumentation: https://webapp.flowers-software.com/resource-management/swagger-ui/index.html
Basis-URL: https://webapp.flowers-software.com/resource-management
Authentifizierung: HTTP-Header X-API-KEY: {api_key}
Schritt 1: Objekte einer Liste abrufen
Mit diesem Endpunkt werden alle Objekte (Einträge) einer Liste als paginierte Liste zurückgegeben.
curl -X GET "<https://webapp.flowers-software.com/resource-management/api/v1/lists/{listId}/objects?size=20>" \\
-H "X-API-KEY: {api_key}" \\
-H "Accept: application/json"
Parameter:
| Parameter | Beschreibung | Beispiel |
|---|---|---|
size |
Anzahl der Objekte pro Seite (Standard: 20) | ?size=50 |
page |
Seitennummer, 0-basiert (Standard: 0) | ?page=1 |
sort |
Sortierung nach Charakteristik-ID | ?sort=STRING_0,asc |
Beispielantwort:
{
"content": [
{
"id": "69aacb9da24242297b2f676c",
"listId": "69aacb76a24242297b2f6769",
"validationState": "VALID",
"values": {
"BOOLEAN_0": { "type": "CHECKBOX", "value": null },
"UPLOAD_0": {
"type": "UPLOAD",
"value": [
{
"fileId": "62e142e8ccc74a58b6fc4c9a3a7b7c99",
"fileName": "Rechnung.pdf",
"mimeType": "application/pdf"
}
]
}
},
"version": 0
}
],
"first": true,
"last": true,
"number": 0,
"numberOfElements": 1,
"size": 20
}
Jedes Objekt im content-Array hat eine id, eine listId und ein values-Objekt. Die Keys in values (z.B. UPLOAD_0, STRING_0) sind die Charakteristik-IDs der Liste.
Schritt 2: Ein einzelnes Objekt abrufen
Um ein einzelnes Objekt gezielt abzurufen, wird die Objekt-ID aus Schritt 1 verwendet.
curl -X GET "<https://webapp.flowers-software.com/resource-management/api/v1/lists/{listId}/objects/{objectId}>" \\
-H "X-API-KEY: {api_key}" \\
-H "Accept: application/json"
Beispielantwort:
{
"id": "69aacb9da24242297b2f676c",
"listId": "69aacb76a24242297b2f6769",
"validationState": "VALID",
"values": {
"BOOLEAN_0": { "type": "CHECKBOX", "value": null },
"UPLOAD_0": {
"type": "UPLOAD",
"value": [
{
"fileId": "62e142e8ccc74a58b6fc4c9a3a7b7c99",
"fileName": "Rechnung.pdf",
"mimeType": "application/pdf"
}
]
}
},
"version": 0
}
Upload-Felder haben den Typ UPLOAD und enthalten ein Array von Dateien. Jede Datei hat drei relevante Felder:
fileId: Interne ID der Datei (wird für den Download benötigt)fileName: Ursprünglicher DateinamemimeType: Dateityp (z.B.application/pdf,image/png)
Schritt 3: Download-URL für eine Datei anfordern
Der Download läuft über einen Presigned-URL-Mechanismus (AWS S3). Zuerst wird eine temporäre Download-URL vom API angefordert, dann wird die Datei direkt von S3 heruntergeladen.
3a: Presigned-URL anfordern
curl -X GET "<https://webapp.flowers-software.com/resource-management/api/v1/lists/{listId}/files?objectId={objectId}&characteristicId=UPLOAD_0&fileId={fileId}>" \\
-H "X-API-KEY: {api_key}" \\
-H "Accept: application/json"
Query-Parameter:
| Parameter | Beschreibung | Quelle |
|---|---|---|
objectId |
ID des Objekts | id aus Schritt 1/2 |
characteristicId |
ID der Upload-Charakteristik | Key aus values, z.B. UPLOAD_0 |
fileId |
ID der Datei | fileId innerhalb des value-Arrays |
Beispielantwort:
{
"preSignedUrl": "<https://flowers-prod-resource-management.s3.eu-central-1.amazonaws.com/>...",
"fileId": "62e142e8ccc74a58b6fc4c9a3a7b7c99",
"fileName": null
}
Die preSignedUrl ist eine temporäre, signierte S3-URL, die ca. 10 Minuten gültig ist.
3b: Datei herunterladen
Mit der preSignedUrl aus der vorherigen Antwort wird die Datei direkt heruntergeladen (kein API-Key nötig):
curl -L -o "Rechnung.pdf" "<https://flowers-prod-resource-management.s3.eu-central-1.amazonaws.com/>..."