Arendajatele
Spetsifikatsioon, millele saab ehitada.
Open Brand Exchange on spetsifikatsioon kolme API, JSON-skeemide, testandmete ja vastavustestidega. Spetsifikatsioon on tõe allikas; teostused järgivad seda.
$ curl https://brands.kestrel.example/.well-known/obx{
"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"]
}Spetsifikatsioon
Versioon 0.1. OpenAPI 3.1, JSON Schema 2020-12, näited ja väljamõeldud testkaubamärk Kestrel Outfitters. Litsents CC-BY-4.0: vabalt teostatav, ka äriliselt.
Kolm API-t
| API | Kellele | Olek | Leping |
|---|---|---|---|
| OBX Protocol | edasimüüjate tarkvara: discovery, OAuth2 client credentials, muudatuste voog, GTIN-otsing, renditions, ekspordid, webhookid | normatiivne | obx-protocol.yaml · HTML |
| OBX Ingest API | kaubamärgi automatiseerimine: idempotentsed upsertid kaubamärgi enda ID-de järgi, sha256-adresseeritud üleslaadimised, partiid, impordid | normatiivne | obx-ingest.yaml · HTML |
| Node Admin + Portal API | ühine haldus ja edasimüüjate portaal | mittenormatiivne | node-admin.yaml · HTML |
Kaubamärgi portaali lugemine mõne reaga
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 ./kestrelSDK ja käsureatööriist
Vastavus
Teostus vastab profiili puhul OBX-ile, kui obx-conformance läbib kõik selle profiili kohustuslikud testid. Profiile on neli: protocol, ingest, portal ja 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 everythingTeostused
| Hoidla | Mis | Litsents | Olek |
|---|---|---|---|
| spec | spetsifikatsioon, skeemid, testandmed | CC-BY-4.0 | 0.1 |
| obx-go | Go SDK, tööriist obx, vastavustestid, näidisserver | Apache-2.0 | 0.1 |
| admin-ui | ühine veebiliides: haldus ja edasimüüjate portaal | Apache-2.0 | 0.1 |
| node-go | Portaal Google Cloudile ja Dockerile Go: Docker ja Google Cloud Run | AGPL-3.0 | 0.1 |
| node-php | Portaal veebimajutusele PHP: tavaline veebimajutus | AGPL-3.0 | 0.1 |
| node-ts | Portaal Cloudflare'ile TypeScript: Cloudflare Workers | AGPL-3.0 | 0.1 |
Ehitate oma teostust või klienti? Andke teada issue või pull requesti kaudu; see lisatakse tabelisse, kui see läbib vastavustestid.
Dokumendid
protocol.mdprotokoll tekstinaingest.mdavaldamine Ingest API kauduimport-format.mdCSV-vorming ja failinimedautomation.mdautomatiseerimise retseptidsecurity.mdturvanõudedversioning.mdversioonid ja ühilduvusdirectory.mdkaubamärkide loendid
Panustamine käib pull requestide kaudu spec-hoidlasse. Kuidas otsuseid tehakse.