Přeskočit na obsah

GS1-Resolver

GS1-Resolver

GS1-Resolver je veřejná vrstva pro čtení DPP. Kanonická URL vypadá takto:

https://qr3.app/01/{GTIN}
https://qr3.app/01/{GTIN}/10/{LOT}
https://qr3.app/01/{GTIN}/21/{SERIAL}
https://qr3.app/01/{GTIN}/10/{LOT}/21/{SERIAL}

Při vytváření DPP (POST /v1/dpp) platí: serial a lot musí používat bezpečné segmenty cesty GS1: pouze A-Z, a-z, 0-9, ., _, ~, - a délku 1 až 20 znaků. Vyhrazené oddělovače URL jsou odmítnuty, aby kanonický odkaz zůstal rozlišitelný.

Content Negotiation

Stejný resolver poskytuje různé reprezentace v závislosti na hlavičce Accept:

AcceptOdpověď
text/htmlSpotřebitelské HTML
application/ld+jsonJSON-LD
application/jsonSurové DPP-JSON
application/linkset+jsonLinkset s alternativami

Veřejně viditelné trasy

  • GET /01/... je kanonický resolver
  • GET /dpp/:gtin/:serial?lot=... je HTML alias
  • GET /v1/dpp/:id/qr.svg vrací SVG
  • GET /v1/dpp/:id/qr.png vrací PNG
  • GET /v1/dpp/:id/qr.pdf vrací PDF
  • GET /v1/dpp/:id/qr.eps vrací EPS

Viditelnost QR aktiv se řídí stavem DPP:

  • live je veřejně dostupný bez autentizace
  • draft a archived vyžadují platný kontext ověření (auth kontext) a přístup k pracovnímu prostoru (Workspace)
  • Neplatná autentizace vrací 401
  • Neviditelné nebo cizí pracovní prostory (Workspaces) vrací 404

Fallback

Pokud GS1 resolver nenajde místní shodu, přesměruje požadavek pomocí 307 na https://id.gs1.org. Pro alias GTIN /dpp/:gtin/:serial?lot=... to platí i při neplatné kontrolní číslici GTIN: hodnoty gtin, lot a serial se kódují samostatně jako segmenty URL, včetně vyhrazených oddělovačů. Přesměrování nepotvrzuje platnost GTIN ani dostupnost dat u GS1.

Výjimka: pokud je dekódovaný identifikátor pouze . nebo .., alias bez místní shody vrátí 422, application/problem+json, typ https://docs.qr3.app/errors/validation a dotčené pole v errors[], bez přesměrování. Analyzátory URL tyto segmenty normalizují i v kódované podobě. Hodnoty jako LOT.1 a ... lze nadále předat. Výjimka se týká pouze tohoto aliasu bez shody; validace při vytváření, kanonický resolver a existující shody zůstávají beze změny.

GET /dpp/{GTIN}/UNKNOWN?lot=LOT%2F1
307 Location: https://id.gs1.org/01/{GTIN}/10/LOT%2F1/21/UNKNOWN
GET /dpp/{GTIN}/UNKNOWN?lot=.
422 Content-Type: application/problem+json

Praxe

  1. Vytvořte DPP v administraci (Dashboard).
  2. Použijte GS1 URI jako cíl QR kódu.
  3. Nasměrujte klientské systémy na požadovaný formát pomocí hlavičky Accept.