Fejlesztőknek

Specifikáció, amelyre építhet.

Az Open Brand Exchange egy specifikáció három API-val, JSON-sémákkal, tesztadatokkal és megfelelőségi tesztekkel. A specifikáció a mérvadó; az implementációk ezt követik.

Terminal
$ curl https://brands.kestrel.example/.well-known/obx
200 OK · application/json
{
  "obx_version": "0.1",
  "publisher": { "name": "Kestrel Outfitters" },
  "api_base": "https://brands.kestrel.example/obx/v1",
  "portal_url": "https://brands.kestrel.example/",
  "capabilities": ["changes", "products", "by_gtin",
                   "renditions", "exports", "webhooks"]
}

A specifikáció

0.1-es verzió. OpenAPI 3.1, JSON Schema 2020-12, példák és egy kitalált tesztmárka, a Kestrel Outfitters. Licenc CC-BY-4.0: szabadon implementálható, üzleti célra is.

openbrandexchange/spec · Kezdje a protocol.md fájllal

Három API

APIKinekÁllapotSzerződés
OBX Protocola viszonteladók szoftverei: discovery, OAuth2 client credentials, változásfolyam, GTIN-keresés, renditions, exportok, webhookoknormatívobx-protocol.yaml · HTML
OBX Ingest APIegy márka automatizálása: idempotens upsertek a márka saját azonosítói alapján, sha256-címzett feltöltések, kötegek, importoknormatívobx-ingest.yaml · HTML
Node Admin + Portal APIa közös adminisztráció és a viszonteladói portálnem normatívnode-admin.yaml · HTML

Egy márkaportál olvasása néhány sorban

HOST=https://brands.kestrel.example
curl -s $HOST/.well-known/obx                       # what does this brand offer?
TOKEN=$(curl -s -u "$CLIENT_ID:$CLIENT_SECRET" -d grant_type=client_credentials \
  $HOST/obx/v1/oauth/token | jq -r .access_token)
curl -s -H "Authorization: Bearer $TOKEN" "$HOST/obx/v1/changes?limit=500"   # everything, then only changes
curl -s -H "Authorization: Bearer $TOKEN" -X POST -H 'Content-Type: application/json' \
  -d '{"gtins":["2000100101025"]}' "$HOST/obx/v1/products:by-gtin"
# or let the obx tool keep a copy in a folder, only fetching what changed:
OBX_CLIENT_ID=$CLIENT_ID OBX_CLIENT_SECRET=$CLIENT_SECRET obx pull $HOST --out ./kestrel

SDK és parancssori eszköz

Az obx-go tartalmazza a Go SDK-t (típusok, protokollkliens és ingest-kliens deduplikációval, többrészes feltöltéssel és kötegekkel), a márkáknak szóló obx eszközt, az obx-conformance-t és egy álszervert. Más nyelveken bármely HTTP-kliens megfelel: a szerződés az OpenAPI-fájlokban van.

obx-go · obx

Megfelelőség

Egy implementáció akkor OBX-megfelelő egy profilra, ha az obx-conformance a profil minden kötelező tesztjén átmegy. Négy profil van: protocol, ingest, portal és security. conformance.md

obx-conformance all --url http://localhost:8080 --setup-code …   # a fresh portal: setup, fixtures, every profile
obx-conformance protocol --url https://brands.kestrel.example --client-id obxc_… --client-secret obxs_…
obx-conformance mock                                              # a mock server that passes everything

Implementációk

TárolóMiLicencÁllapot
specspecifikáció, sémák, tesztadatokCC-BY-4.00.1
obx-goGo SDK, obx eszköz, megfelelőségi tesztek, álszerverApache-2.00.1
admin-uiközös webes felület: adminisztráció és viszonteladói portálApache-2.00.1
node-goPortál Google Cloudra és Dockerre
Go: Docker és Google Cloud Run
AGPL-3.00.1
node-phpPortál webtárhelyre
PHP: hagyományos webtárhely
AGPL-3.00.1
node-tsPortál Cloudflare-re
TypeScript: Cloudflare Workers
AGPL-3.00.1

Saját implementációt vagy klienst épít? Jelezze issue-ban vagy pull requestben; amint átmegy a megfelelőségi teszteken, bekerül ebbe a táblázatba.

Dokumentumok