diff --git a/.brain/licserver-api.md b/.brain/licserver-api.md index f912d79..9cce645 100644 --- a/.brain/licserver-api.md +++ b/.brain/licserver-api.md @@ -1,8 +1,8 @@ # LicServer API Spezifikation (v1) -Dokumentation der REST-Schnittstellen des CASPOS Lizenzservers (`http://192.168.178.174:9981`). +Dokumentation der REST-Schnittstellen des CASPOS Lizenzservers. -## 1. Endpunkte +## 1. Endpunkte (Port 9981 - Activation API) ### Activation (Aktivierung) @@ -89,7 +89,119 @@ Standard Fehlerobjekt `ProblemDetails`. --- -## 2. Typen & Schemas +## 2. Endpunkte (Port 9980 - Management API) + +Alle Anfragen an die Management-API müssen authentifiziert sein. +- **Header-Format:** `X-Api-Key: ` + +### Partners (Partner) + +#### `GET /api-v1/partners` +Gibt eine paginierte Liste aller Partner zurück. + +**Request Parameters (Query):** +- `search` (string, optional): Filtert nach Name/E-Mail. +- `page` (integer, default: 1) +- `pageSize` (integer, default: 20) + +**Response `200 OK` (`application/json`):** +```json +{ + "page": 1, + "pageSize": 20, + "totalCount": 1, + "totalPages": 1, + "hasNextPage": false, + "hasPreviousPage": false, + "items": [ + { + "id": "string (UUID)", + "name": "string", + "email": "string", + "erpId": "string" + } + ] +} +``` + +#### `GET /api-v1/partners/{id}` +Holt Partner-Details zu einer bestimmten ID. + +**Response `200 OK` (`application/json`):** +```json +{ + "id": "string (UUID)", + "name": "string", + "email": "string", + "erpId": "string" +} +``` + +### Customers (Kunden von Partnern) + +#### `GET /api-v1/partners/{partnerId}/customers` +Gibt eine paginierte Liste aller Kunden eines bestimmten Partners zurück. + +**Request Parameters (Query):** +- `search` (string, optional): Filtert nach Name/E-Mail. +- `page` (integer, default: 1) +- `pageSize` (integer, default: 20) + +**Response `200 OK` (`application/json`):** +```json +{ + "page": 1, + "pageSize": 20, + "totalCount": 1, + "totalPages": 1, + "hasNextPage": false, + "hasPreviousPage": false, + "items": [ + { + "id": "string (UUID)", + "name": "string", + "street": "string", + "houseNumber": "string", + "houseNumberAddon": "string", + "zipCode": "string", + "city": "string", + "countryCode": "string", + "email": "string", + "partnerId": "string (UUID)", + "erpId": "string" + } + ] +} +``` + +#### `GET /api-v1/partners/{partnerId}/customers/{customerId}` +Holt detaillierte Kundeninformationen. + +**Response `200 OK` (`application/json`):** +```json +{ + "id": "string (UUID)", + "name": "string", + "street": "string", + "houseNumber": "string", + "houseNumberAddon": "string", + "zipCode": "string", + "city": "string", + "countryCode": "string", + "email": "string", + "partnerId": "string (UUID)", + "erpId": "string", + "partnerName": "string", + "taxNumber": "string", + "vatIdNumber": "string", + "notes": "string", + "locations": [] +} +``` + +--- + +## 3. Typen & Schemas ### `LicenseData` ```json @@ -112,3 +224,4 @@ Standard Fehlerobjekt `ProblemDetails`. "instance": "string" } ``` +