51 lines
2.1 KiB
Markdown
51 lines
2.1 KiB
Markdown
# PPL CPL API
|
|
|
|
Stateless multi-tenant proxy nad **PPL CPL API** (Create Package Label) běžící
|
|
v AppFactory. Umožňuje tvorbu zásilek a tisk etiket, tracking, objednávky
|
|
svozu/přepravy, číselníky, výdejní místa a našeptávač adres.
|
|
|
|
## Přihlašovací údaje
|
|
|
|
Předávají se **per-request v hlavičkách** (nikdy v těle, URL ani konfiguraci):
|
|
|
|
| Hlavička | Význam |
|
|
|---|---|
|
|
| `X-Client-Id` | PPL CPL ClientId (přiděluje PPL) |
|
|
| `X-Client-Secret` | PPL CPL ClientSecret |
|
|
| `X-Environment` | volitelně `production` (default) / `test` |
|
|
|
|
Služba si sama vyžádá OAuth Bearer token (client_credentials, scope `myapi2`)
|
|
a cachuje ho in-memory podle hashe údajů — PPL limituje vydávání tokenů na
|
|
12/min a token platí 30 minut.
|
|
|
|
## Hlavní endpointy
|
|
|
|
- `POST /shipments/batch` → vytvoření zásilek, vrací `batchId`
|
|
- `GET /shipments/batch/{batchId}` → stav importu (Accepted/InProcess/Complete/Error)
|
|
- `GET /shipments/batch/{batchId}/labels` → binární etikety (PDF/ZPL/JPG…)
|
|
- `POST /shipments/create-and-wait` → celý tok v jednom requestu (volitelně etikety v base64)
|
|
- `GET /shipments` → tracking
|
|
- `POST /shipments/{n}/cancel`, `POST /shipments/{n}/redirect`, `POST /shipments/{n}/documents`
|
|
- `POST /orders/batch`, `GET /orders/batch/{batchId}`, `POST /orders/create-and-wait`, `GET /orders`, `POST /orders/cancel`
|
|
- `GET /codelists/{name}`, `GET /access-points`, `GET /address-whisper`, `GET /routing`
|
|
- `GET /customer`, `GET /customer/addresses`, `POST /customer/number-range`
|
|
- `/proxy/{cesta}` → generické volání libovolné metody CPL API 1:1
|
|
|
|
Kompletní popis viz [documentation/](documentation/) a Swagger na `/docs`.
|
|
|
|
## Poznámky
|
|
|
|
- CPL API přijímá jen Latin znaky bez diakritiky — texty v create requestech se
|
|
defaultně transliterují (`transliterate=false` to vypne).
|
|
- Služba dodržuje minimální rozestup requestů na PPL (40 ms).
|
|
- Chyby: JSON `{error, message, detail}`, `detail` nese problem+json z PPL.
|
|
|
|
## Lokální spuštění
|
|
|
|
```bash
|
|
pip install -r requirements.txt
|
|
uvicorn app.main:app --host 0.0.0.0 --port 8000
|
|
```
|
|
|
|
Generated by AppFactory.
|