Skip to content

GS1 Резолвер

GS1 Резолвер

GS1 Резолверът е публичният слой за четене на DPP. Каноничният URL адрес изглежда така:

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}

При създаване на DPP (POST /v1/dpp) важи следното: serial и lot трябва да използват сигурни сегменти от пътя на GS1: само A-Z, a-z, 0-9, ., _, ~, - и дължина от 1 до 20 знака. Резервираните URL разделители се отхвърлят, за да може каноничната връзка да остане разрешима.

Content Negotiation

Същият резолвер предоставя различни представяния в зависимост от заглавната част Accept:

AcceptОтговор
text/htmlConsumer-HTML
application/ld+jsonJSON-LD
application/jsonСуров DPP-JSON
application/linkset+jsonLinkset с алтернативи

Публично достъпни маршрути

  • GET /01/... е каноничният резолвер
  • GET /dpp/:gtin/:serial?lot=... е HTML псевдоним
  • GET /v1/dpp/:id/qr.svg връща SVG
  • GET /v1/dpp/:id/qr.png връща PNG
  • GET /v1/dpp/:id/qr.pdf връща PDF
  • GET /v1/dpp/:id/qr.eps връща EPS

Видимостта на QR активите зависи от статуса на DPP:

  • live е публично достъпен без автентикация
  • draft и archived изискват валиден контекст за автентикация плюс достъп до Workspace
  • Невалидната автентикация връща 401
  • Невидимите или чуждите Workspaces връщат 404

Fallback

При липса на локално съвпадение GS1 резолверът пренасочва с 307 към https://id.gs1.org. За GTIN псевдонима /dpp/:gtin/:serial?lot=... това важи и при невалидна контролна цифра на GTIN: gtin, lot и serial се кодират поотделно като URL сегменти, включително резервираните разделители. Пренасочването не потвърждава валидността на GTIN или наличието на данни при GS1.

Изключение: ако декодиран идентификатор е само . или .., псевдонимът без локално съвпадение връща 422, application/problem+json, тип https://docs.qr3.app/errors/validation и засегнатото поле в errors[], без пренасочване. URL анализаторите нормализират тези сегменти дори в кодирана форма. Стойности като LOT.1 и ... остават допустими за пренасочване. Изключението се отнася само за този псевдоним без съвпадение; валидирането при създаване, каноничният резолвер и съществуващите съвпадения остават непроменени.

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

Практика

  1. Създайте DPP в таблото за управление (Dashboard).
  2. Използвайте GS1 URI като цел на QR кода.
  3. Насочете консумиращите системи към желания формат чрез Accept.