GS1-Resolver
GS1-Resolver
GS1-Resolver este stratul public de citire pentru un DPP. URL-ul canonic arată astfel:
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}La crearea unui DPP (POST /v1/dpp), se aplică următoarele reguli: serial și lot trebuie să utilizeze segmente de cale GS1 sigure: doar A-Z, a-z, 0-9, ., _, ~, - și o lungime de la 1 până la 20 de caractere. Delimitatorii URL rezervați sunt respinși pentru ca linkul canonic să rămână rezolvabil.
Content Negotiation
Același resolver oferă reprezentări diferite în funcție de antetul Accept:
| Accept | Răspuns |
|---|---|
text/html | HTML pentru consumatori |
application/ld+json | JSON-LD |
application/json | JSON DPP brut |
application/linkset+json | Linkset cu alternative |
Rute vizibile public
GET /01/...este resolverul canonicGET /dpp/:gtin/:serial?lot=...este un alias HTMLGET /v1/dpp/:id/qr.svgreturnează SVG-ulGET /v1/dpp/:id/qr.pngreturnează PNG-ulGET /v1/dpp/:id/qr.pdfreturnează PDF-ulGET /v1/dpp/:id/qr.epsreturnează EPS-ul
Vizibilitatea activelor QR depinde de starea DPP:
liveeste accesibil public fără autentificaredraftșiarchivednecesită un context de autentificare valid plus acces la spațiul de lucru (workspace)- Autentificarea nevalidă returnează
401 - Spațiile de lucru (workspaces) invizibile sau străine returnează
404
Fallback
Fără o potrivire locală, resolverul GS1 redirecționează cu 307 către https://id.gs1.org. Pentru aliasul GTIN /dpp/:gtin/:serial?lot=..., acest lucru se aplică și unui GTIN cu cifră de control nevalidă: gtin, lot și serial sunt codificate separat ca segmente de cale URL, inclusiv delimitatorii rezervați. Redirecționarea nu confirmă validitatea GTIN sau disponibilitatea datelor la GS1.
Excepție: dacă un identificator decodificat este doar . sau .., aliasul fără potrivire locală răspunde cu 422, application/problem+json, tipul https://docs.qr3.app/errors/validation și câmpul afectat în errors[], fără redirecționare. Parserele URL normalizează aceste segmente chiar și în forma codificată. Valori precum LOT.1 și ... pot fi în continuare delegate. Excepția privește doar acest alias fără potrivire; validarea la creare, resolverul canonic și potrivirile existente rămân neschimbate.
GET /dpp/{GTIN}/UNKNOWN?lot=LOT%2F1307 Location: https://id.gs1.org/01/{GTIN}/10/LOT%2F1/21/UNKNOWN
GET /dpp/{GTIN}/UNKNOWN?lot=.422 Content-Type: application/problem+jsonÎn practică
- Creează DPP în panoul de control (dashboard).
- Utilizează URI-ul GS1 ca țintă pentru codul QR.
- Direcționează sistemele consumatoare către formatul dorit utilizând antetul
Accept.