v0.99.19: One address for people and machines, and a cleaner passport JSON-LD
A GS1 Digital Link address now returns the passport JSON-LD directly when the request asks for JSON, and the passport JSON-LD uses standard vocabulary throughout.
This entry covers the changes that affect developers who read passports.
GS1 resolver content negotiation
- One address for people and machines.
/01/{gtin},/01/{gtin}/21/{serial}and/01/{gtin}/10/{batch}return the passport JSON-LD with a 200 when theAcceptheader prefersapplication/json,application/ld+jsonor anyapplication/*+jsontype over HTML. Browsers and*/*still get the HTML viewer. The response carriesVary: Accept. - No redirect for JSON requests. A JSON request is answered on the GS1 address itself instead of being redirected to
/api/dpp/{slug}/jsonld, which continues to work as before. - Consistent not-found. An unknown GTIN, an invalid check digit or an unavailable product returns the same JSON 404 body.
See DPP endpoints for the full list of responses.
Production passport host
The production passport host is dpp.traceable.digital. app.traceable.digital answers /dpp/... and /01/... paths with a 307 redirect to the same path on that host.
For integrators
What to update: passport JSON-LD
@idis the passport's GS1 Digital Link URI on the host that served the document, for examplehttps://<host>/01/<gtin>. The decentralised identifier is indpp:did(this term is removed in v0.99.20).- The
espr:prefix is removed. Its terms are now underdpp::dpp:circularity(withdpp:recycledContentPercentage,dpp:reparabilityScoreanddpp:dismantlingInstructions),dpp:substancesOfConcern,dpp:economicOperators(withdpp:roleanddpp:eoriNumber),dpp:dppGranularityanddpp:productCategory. The values are unchanged. gs1:serialNumberis nowgs1:hasSerialNumber, the GS1 Web Vocabulary property for AI 21.- Rated capacity uses unit code
AMH(ampere hour). skuholds the model identifier, and is omitted when there is none.- The W3C credentials context is removed, because the document is not a Verifiable Credential.
dpp:temperatureRangeappears only when an idle temperature bound is a number.DigitalProductPassportis defined in the context, and thebpv1_3:prefix is declared in it.
See JSON-LD format for the updated vocabulary.