Għall-iżviluppaturi
Speċifikazzjoni li tista' tibni fuqha.
Open Brand Exchange hija speċifikazzjoni bi tliet APIs, JSON Schemas, data tat-test u testijiet ta' konformità. L-ispeċifikazzjoni hija s-sors tal-verità; l-implimentazzjonijiet isegwuha.
$ 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"]
}L-ispeċifikazzjoni
Verżjoni 0.1. OpenAPI 3.1, JSON Schema 2020-12, eżempji u marka tat-test fittizja, Kestrel Outfitters. Liċenzja CC-BY-4.0: ħielsa biex tiġi implimentata, anke kummerċjalment.
Tliet APIs
| API | Għal | Status | Kuntratt |
|---|---|---|---|
| OBX Protocol | is-softwer tal-bejjiegħa: discovery, OAuth2 client credentials, feed tal-bidliet, tiftix bil-GTIN, renditions, esportazzjonijiet, webhooks | normattiv | obx-protocol.yaml · HTML |
| OBX Ingest API | l-awtomazzjoni ta' marka: upserts idempotenti bl-identifikaturi tal-marka nnifisha, uploads indirizzati b'sha256, lottijiet, importazzjonijiet | normattiv | obx-ingest.yaml · HTML |
| Node Admin + Portal API | l-amministrazzjoni kondiviża u l-portal għall-bejjiegħa | mhux normattiv | node-admin.yaml · HTML |
Taqra portal ta' marka fi ftit linji
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 u għodda tal-linja tal-kmand
Konformità
Implimentazzjoni hija konformi ma' OBX għal profil meta obx-conformance jgħaddi mit-testijiet obbligatorji kollha ta' dak il-profil. Hemm erba' profili: protocol, ingest, portal u 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 everythingImplimentazzjonijiet
| Repożitorju | X'inhu | Liċenzja | Status |
|---|---|---|---|
| spec | speċifikazzjoni, skemi, data tat-test | CC-BY-4.0 | 0.1 |
| obx-go | Go SDK, għodda obx, testijiet ta' konformità, server finta | Apache-2.0 | 0.1 |
| admin-ui | interfaċċa web kondiviża: amministrazzjoni u portal għall-bejjiegħa | Apache-2.0 | 0.1 |
| node-go | Portal għal Google Cloud u Docker Go: Docker u Google Cloud Run | AGPL-3.0 | 0.1 |
| node-php | Portal għal web hosting PHP: web hosting normali | AGPL-3.0 | 0.1 |
| node-ts | Portal għal Cloudflare TypeScript: Cloudflare Workers | AGPL-3.0 | 0.1 |
Qed tibni l-implimentazzjoni jew il-client tiegħek? Għarrafna b'issue jew pull request, u tidħol f'din it-tabella hekk kif tgħaddi mit-testijiet ta' konformità.
Dokumenti
protocol.mdil-protokoll, bi prożaingest.mdpubblikazzjoni permezz tal-Ingest APIimport-format.mdil-format CSV u l-ismijiet tal-fajlsautomation.mdriċetti tal-awtomazzjonisecurity.mdrekwiżiti tas-sigurtàversioning.mdverżjonijiet u kompatibbiltàdirectory.mddirettorji tal-marki
Il-kontribuzzjonijiet isiru permezz ta' pull requests fuq ir-repożitorju spec. Kif jittieħdu d-deċiżjonijiet.