Kūrėjams

Specifikacija, ant kurios galite statyti.

Open Brand Exchange yra specifikacija su trimis API, JSON schemomis, bandomaisiais duomenimis ir atitikties testais. Specifikacija yra tiesos šaltinis; įgyvendinimai jos laikosi.

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"]
}

Specifikacija

Versija 0.1. OpenAPI 3.1, JSON Schema 2020-12, pavyzdžiai ir išgalvotas bandomasis prekės ženklas Kestrel Outfitters. Licencija CC-BY-4.0: laisvai įgyvendinama, taip pat komerciškai.

openbrandexchange/spec · Pradėkite nuo protocol.md

Trys API

APIKamBūsenaSutartis
OBX Protocolpardavėjų programinė įranga: discovery, OAuth2 client credentials, pakeitimų srautas, GTIN paieška, renditions, eksportai, webhooksnormatyvinisobx-protocol.yaml · HTML
OBX Ingest APIprekės ženklo automatizavimas: idempotentiški upserts pagal paties prekės ženklo ID, sha256 adresuojami įkėlimai, paketai, importainormatyvinisobx-ingest.yaml · HTML
Node Admin + Portal APIbendras administravimas ir prekybininkų portalasnenormatyvinisnode-admin.yaml · HTML

Prekės ženklo portalo skaitymas keliose eilutėse

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 ir komandinės eilutės įrankis

obx-go apima Go SDK (tipai, protokolo klientas ir ingest klientas su dublikatų šalinimu, daugiadaliais įkėlimais ir paketais), įrankį obx prekių ženklams, obx-conformance ir imitacinį serverį. Kitose kalbose tinka bet kuris HTTP klientas: sutartis yra OpenAPI failuose.

obx-go · obx

Atitiktis

Įgyvendinimas atitinka OBX profiliui, kai obx-conformance išlaiko visus privalomus to profilio testus. Yra keturi profiliai: protocol, ingest, portal ir 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

Įgyvendinimai

SaugyklaKasLicencijaBūsena
specspecifikacija, schemos, bandomieji duomenysCC-BY-4.00.1
obx-goGo SDK, įrankis obx, atitikties testai, imitacinis serverisApache-2.00.1
admin-uibendra žiniatinklio sąsaja: administravimas ir prekybininkų portalasApache-2.00.1
node-goPortalas Google Cloud ir Docker
Go: Docker ir Google Cloud Run
AGPL-3.00.1
node-phpPortalas interneto talpinimui
PHP: įprastas interneto talpinimas
AGPL-3.00.1
node-tsPortalas Cloudflare
TypeScript: Cloudflare Workers
AGPL-3.00.1

Kuriate savo įgyvendinimą ar klientą? Praneškite per issue ar pull request; jis pateks į šią lentelę, kai išlaikys atitikties testus.

Dokumentai