feat(seo): generate slugs for brands, categories and products, add GET /sitemap and the Postman collection
This commit is contained in:
26
postman/collections/DinggaDingga/syncHiboutik.request.yaml
Normal file
26
postman/collections/DinggaDingga/syncHiboutik.request.yaml
Normal file
@@ -0,0 +1,26 @@
|
||||
$kind: http-request
|
||||
description: |-
|
||||
Starts a full Hiboutik → database synchronization **in the background** and answers immediately: the request never waits for the sync to end.
|
||||
|
||||
**What it syncs**, in dependency order: brands → categories → suppliers → products (with their versions and stocks) → customers (with their addresses and orders). New brands, categories and products get their slug at the end of their step.
|
||||
|
||||
**Hiboutik is the source of truth**: brands, categories, suppliers, products and customers missing from Hiboutik are deleted from the database (orders are never deleted). A failed Hiboutik call deletes nothing. A failing item is logged and skipped; the sync goes on and logs a summary at the end. Follow its progress in the server logs.
|
||||
|
||||
**One sync at a time**, across all instances (Postgres advisory lock): a call while a sync is running answers `409`.
|
||||
|
||||
**Cost**: a sync uses roughly one Hiboutik API call per customer, plus a few per entity type. Hiboutik allows 10,000 calls per month per shop; when its rate limit is reached, the sync stops.
|
||||
|
||||
**Responses**
|
||||
- `202` sync started.
|
||||
- `409` a sync is already running (on this instance or another one).
|
||||
- `429` rate limit: 5 calls per minute per IP on this route. `Retry-After` gives the seconds to wait.
|
||||
- `503` this instance is shutting down: retry, another instance can take the call.
|
||||
- `500` unexpected error (e.g. database unreachable); details are in the server logs only.
|
||||
|
||||
No body, no parameters.
|
||||
url: "{{baseUrl}}/sync"
|
||||
method: POST
|
||||
headers:
|
||||
Accept: application/json
|
||||
examples: ./.resources/syncHiboutik.resources/examples
|
||||
order: 1000
|
||||
Reference in New Issue
Block a user