Ga naar inhoud

GS1-resolver

GS1-resolver

De GS1-resolver is de openbare leeslaag voor een DPP. De kanonische URL ziet er als volgt uit:

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}

Bij het aanmaken van een DPP (POST /v1/dpp) gelden de volgende regels: serial en lot moeten veilige GS1-padsegmenten gebruiken: alleen A-Z, a-z, 0-9, ., _, ~, - en een lengte van 1 tot 20 tekens. Gereserveerde URL-scheidingstekens worden geweigerd, zodat de kanonische link herleidbaar blijft.

Content Negotiation

Dezelfde resolver levert afhankelijk van de Accept-header verschillende weergaven:

AcceptAntwoord
text/htmlConsumenten-HTML
application/ld+jsonJSON-LD
application/jsonRuwe DPP-JSON
application/linkset+jsonLinkset met alternatieven

Openbaar zichtbare routes

  • GET /01/... is de kanonische resolver
  • GET /dpp/:gtin/:serial?lot=... is een HTML-alias
  • GET /v1/dpp/:id/qr.svg levert de SVG
  • GET /v1/dpp/:id/qr.png levert de PNG
  • GET /v1/dpp/:id/qr.pdf levert de PDF
  • GET /v1/dpp/:id/qr.eps levert de EPS

De zichtbaarheid van de QR-assets is afhankelijk van de DPP-status:

  • live is zonder authenticatie openbaar opvraagbaar
  • draft en archived vereisen een geldige authenticatiecontext plus workspace-toegang
  • Ongeldige authenticatie levert 401 op
  • Niet-zichtbare of externe workspaces leveren 404 op

Fallback

Zonder lokale overeenkomst verwijst de GS1-resolver met 307 door naar https://id.gs1.org. Voor de GTIN-alias /dpp/:gtin/:serial?lot=... geldt dit ook bij een ongeldig GTIN-controlecijfer: gtin, lot en serial worden afzonderlijk als URL-padsegmenten gecodeerd, inclusief gereserveerde scheidingstekens. De doorverwijzing bevestigt noch de geldigheid van de GTIN, noch de beschikbaarheid van gegevens bij GS1.

Uitzondering: als een gedecodeerde identificatie uitsluitend . of .. is, antwoordt de alias zonder lokale overeenkomst met 422, application/problem+json, het type https://docs.qr3.app/errors/validation en het betreffende veld in errors[], zonder doorverwijzing. URL-parsers normaliseren deze segmenten ook in gecodeerde vorm. Waarden zoals LOT.1 en ... kunnen nog steeds worden doorgestuurd. De uitzondering geldt alleen voor deze alias zonder overeenkomst; validatie bij het aanmaken, de canonieke resolver en bestaande overeenkomsten blijven ongewijzigd.

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

Praktijk

  1. Maak een DPP aan in het dashboard.
  2. Gebruik de GS1-URI als QR-doel.
  3. Leid consumerende systemen via Accept naar het gewenste formaat.