← Resolver conformance tester

Resolver conformance tests

The tests GS1's resolver conformance suite can report, with the criterion each one quotes from the GS1-Conformant Resolver standard. Read from the suite's source at commit 32597c1 of 2026-08-07. The type of every finding in a report is this page, anchored at the test's id. The per-link-type tests the suite reports as loFor<linkType> are listed once under loFor.

SHALL a failure makes the resolver non-conformantSHOULD the suite warnsother the quoted criterion names neither SHALL nor SHOULD; the result status decides
isURLother
  • Not listed as a conformance criterion but the DL URI must be a valid URL

https://ref.openepcis.org/conformance/resolver/tests#isURL

validDLother
  • Given input must be a GS1 Digital Link URI

https://ref.openepcis.org/conformance/resolver/tests#validDL

isHttpsSHALL
  • SHALL support HTTP Over TLS (HTTPS)

https://ref.openepcis.org/conformance/resolver/tests#isHttps

  • Following GS1 Digital Link: URI syntax, we can check whether a URL plausibly is, or definitely is not, a DL URI

https://ref.openepcis.org/conformance/resolver/tests#plausibleDL

tlsOKSHALL
  • SHALL support HTTP Over TLS (HTTPS)

https://ref.openepcis.org/conformance/resolver/tests#tlsOK

rdFileSHALL
  • SHALL provide a resolver description file at /.well-known/gs1resolver

https://ref.openepcis.org/conformance/resolver/tests#rdFile

  • SHALL support HTTP 1.1 (or higher)

https://ref.openepcis.org/conformance/resolver/tests#httpVersion

  • SHALL support CORS

https://ref.openepcis.org/conformance/resolver/tests#corsCheck

  • SHALL support HTTP 1.1 (or higher) GET, HEAD and OPTIONS requests.

https://ref.openepcis.org/conformance/resolver/tests#methodsCheck

  • SHALL extract and syntactically validate the URI and report errors with an HTTP response code of 400

https://ref.openepcis.org/conformance/resolver/tests#reportWith400

  • A GS1 conformant resolver SHALL NOT use a 200 OK response code with a resource that indicates an error condition

https://ref.openepcis.org/conformance/resolver/tests#noErrorWith200

  • SHOULD tolerate trailing slashes at the end of GS1 Digital Link URIs, i.e. the resolver SHOULD NOT fail if one is present

https://ref.openepcis.org/conformance/resolver/tests#trailingSlash

  • For each supported primary key, a resolver SHALL support all its key qualifiers.

https://ref.openepcis.org/conformance/resolver/tests#basicWalkUp

  • On receiving a request for the linkset, by setting the linkType parameter to linkset, the resolver SHALL NOT redirect the query and SHALL return the linkset.

https://ref.openepcis.org/conformance/resolver/tests#ltLinksetNoRedirect

  • On receiving a request for the linkset, by setting the linkType paramter to all, the resolver SHALL NOT redirect the query and SHALL return the linkset.

https://ref.openepcis.org/conformance/resolver/tests#ltAllNoRedirect

  • On receiving a request for the linkset, by setting the HTTP Accept Header to application/linkset+json, the resolver SHALL NOT redirect the query and SHALL return the linkset.

https://ref.openepcis.org/conformance/resolver/tests#ltAcceptHeader

  • Linkset must be valid according to published JSON schema

https://ref.openepcis.org/conformance/resolver/tests#validLinkset

  • When requesting the linkset the HTTP response headers SHOULD include a Link header pointing to a JSON-LD context file

https://ref.openepcis.org/conformance/resolver/tests#linksetJsonldCheck

  • If the HTTP Accept header is application/linkset+json, the resolver SHALL return the linkset serialised as JSON as defined by RFC9264

https://ref.openepcis.org/conformance/resolver/tests#declaredContentType

  • Linkset must be valid according to published JSON schema

https://ref.openepcis.org/conformance/resolver/tests#hackedLinkset

  • SHOULD expose the direct link to the linkset in an HTTP Link header when redirecting.

https://ref.openepcis.org/conformance/resolver/tests#linkOnRedirect

  • The inclusion of all possible links in the HTTP Link header was deprecated in version 1.0.0 of the GS1-Conformant resolver standard, February 2024

https://ref.openepcis.org/conformance/resolver/tests#legacyLinkHeaders

  • By default, SHALL pass on all key=value pairs in the query string of the request URI (if present) when redirecting

https://ref.openepcis.org/conformance/resolver/tests#qsPassedOn

  • For each identified entity there SHALL be exactly one default link, the list of link types for which SHALL include gs1:defaultLink. This default is defined without any of the optional attributes, that is, it SHALL include a title, but SHALL NOT include other attributes.

https://ref.openepcis.org/conformance/resolver/tests#defaultLinkExists

  • Link types SHOULD be given as a URI defined in the GS1 Web vocabulary

https://ref.openepcis.org/conformance/resolver/tests#linkTypesDefined

loForSHALL
  • If the requested type of link is available, the resolver SHALL redirect to it
  • Where it is impossible to determine which of multiple links of the same link type is the best match, the resolver should return the list of the available links of that type with an HTTP response code of 300 Multiple Choices.

https://ref.openepcis.org/conformance/resolver/tests#loFor

  • If the requested type of link is not available, the resolver SHALL return a 404 Not Found message.

https://ref.openepcis.org/conformance/resolver/tests#specificLinkTypeNotFound