---
title: "GS1 Resolver Test Suite: DPP-links vóór de livegang betrouwbaar testen — qr3.app Blog"
description: "De stabiele GS1-testsuite maakt Resolver 1.2 toetsbaar. Zo test u redirects, linksets, CORS, talen en foutgevallen vóór de livegang."
canonical: "https://qr3.app/nl/blog/gs1-resolver-test-suite-dpp-links/"
lang: "nl"
robots: "index,follow,max-image-preview:large,max-snippet:-1"
---

# GS1 Resolver Test Suite: DPP-links vóór de livegang betrouwbaar testen — qr3.app Blog

> De stabiele GS1-testsuite maakt Resolver 1.2 toetsbaar. Zo test u redirects, linksets, CORS, talen en foutgevallen vóór de livegang.

Canonical: <https://qr3.app/nl/blog/gs1-resolver-test-suite-dpp-links/>

[← Blog](/nl/blog/) [Tutorials](/nl/blog/category/tutorials/)

9 augustus 2026 5 min leestijd [Tutorials](/nl/blog/category/tutorials/) [gs1-resolver](/nl/blog/tag/gs1-resolver/)[gs1-digital-link](/nl/blog/tag/gs1-digital-link/)[linkset](/nl/blog/tag/linkset/)[konformitaetstests](/nl/blog/tag/konformitaetstests/)[dpp](/nl/blog/tag/dpp/)

# GS1 Resolver Test Suite: DPP-links vóór de livegang betrouwbaar testen

De stabiele GS1-testsuite maakt Resolver 1.2 toetsbaar. Zo test u redirects, linksets, CORS, talen en foutgevallen vóór de livegang.

door **QR3 Redaktion**

![GS1 Resolver Test Suite: DPP-links vóór de livegang betrouwbaar testen](https://qr3-blog-agent.meistern.workers.dev/cdn/blog/gs1-resolver-test-suite-dpp-links/hero.png)

Een QR-code die in de browser een pagina opent, bewijst nog niet dat een resolver betrouwbaar werkt. Voor een GS1-Digital-Link-resolver telt het volledige HTTP-gedrag: welke identifiers worden geaccepteerd? Wat is het standaarddoel? Levert de dienst een machineleesbare linkset? Werken browseraanvragen vanaf andere domeinen? En geven ongeldige of niet-beschikbare aanvragen de juiste foutmelding?

Sinds **16 januari 2026** is de [GS1-Conformant Resolver Standard 1.2.0](https://ref.gs1.org/standards/resolver/archive) beschikbaar. De bijbehorende [openbare GS1-testsuite](https://ref.gs1.org/test-suites/resolver/) geldt inmiddels als stabiel; de code is voor het laatst bijgewerkt op **29 juni 2026**. Daarmee kan een abstracte norm worden omgezet in een concrete acceptatietest. Dit artikel laat zien wat vóór de livegang moet worden gecontroleerd, waar de testsuite grenzen heeft en welke bewijzen in een technische vrijgave thuishoren.

## Een geslaagde scan is slechts het begin

Een GS1 Digital Link bevat een GS1-identifier in een HTTPS-URI. De resolver koppelt deze identifier aan een of meer bronnen, zoals een productpagina, handleiding, gegevensblad of programmeerinterface. Ons basisartikel legt de [GS1-Digital-Link-resolver uit aan de hand van een livevoorbeeld](https://qr3.app/de/blog/gs1-digital-link-resolver/). Voor een productievrijgave is een geslaagde standaardredirect echter niet voldoende.

De [resolverstandaard 1.2.0](https://ref.gs1.org/standards/resolver/) vereist onder meer HTTPS, ondersteuning voor `GET`, `HEAD` en `OPTIONS`, Cross-Origin Resource Sharing (CORS), een herkenbare standaardlink en een linksetuitvoer. Bij `linkType=linkset` of de Accept-header `application/linkset+json` mag de resolver niet doorverwijzen. In plaats daarvan moet hij de beschikbare getypeerde links als zelfstandige representatie teruggeven.

Dit onderscheid is belangrijk: het menselijke browserpad kan werken terwijl machineaanvragen, taal, linktypen of foutgevallen defect zijn. Juist zulke afwijkingen blijven bij een pure scantest onzichtbaar.

## Het acceptatieplan in zeven stappen

### 1. Representatieve test-URI's vastleggen

Begin niet met één enkel modelproduct. Stel een kleine, versiebeheerste testverzameling samen:

- ten minste één geldige identifier per ondersteunde GS1-primaire sleutel;

- een GTIN-geval zonder qualifier;

- gevallen met batch- of serienummer, voor zover deze granulariteit wordt ondersteund;

- een syntactisch ongeldige identifier;

- een geldige maar onbekende identifier;

- een bekende identifier zonder het opgevraagde linktype.

De standaard staat een resolver toe om slechts een subset van de GS1-primaire sleutels te ondersteunen. Voor elke ondersteunde primaire sleutel moeten de qualifiers en gegevensattributen echter volledig worden verwerkt. Daarom moet de testset aansluiten bij de daadwerkelijk verklaarde mogelijkheden, niet bij een algemene marketingclaim.

### 2. Standaardredirect en methoden controleren

Test de normale aanroep eerst zonder bijzondere headers. Verwacht wordt een deterministische standaardlink. Daarna volgen `HEAD` en `OPTIONS`: `HEAD` mag geen andere routeringslogica gebruiken dan `GET`, en `OPTIONS` moet de aangeboden methoden inzichtelijk maken.

Een minimale handmatige test ziet er zo uit:

```
curl -sS -D - -o /dev/null \
  "https://id.gs1.org/01/09506000134352"

curl -sS -I \
  "https://id.gs1.org/01/09506000134352"
```

Documenteer statuscode, `Location`, cacheheaders en het aantal redirects. Een redirectlus, een willekeurig doel of een per methode afwijkend pad is een vrijgavefout, ook als een smartphone uiteindelijk een pagina toont.

### 3. Een linkset opvragen in plaats van een webpagina

De belangrijkste machinecontrole is de linkset:

```
curl -sS \
  -H "Accept: application/linkset+json" \
  "https://id.gs1.org/01/09506000134352"
```

[RFC 9264](https://datatracker.ietf.org/doc/html/rfc9264) definieert `application/linkset+json` als een zelfstandige JSON-representatie van een verzameling getypeerde weblinks. GS1 maakt het contract strenger: de uitvoer moet valideren tegen het [normatieve linksetschema voor versie 1.2.0](https://ref.gs1.org/standards/resolver/1.2.0/linkset-schema). Controleer daarom niet alleen of er JSON wordt teruggestuurd, maar ook mediatype, schema, absolute doel-URI's, anchor en linkrelaties.

Bijzonder verraderlijk zijn formeel geldige maar inhoudelijk verkeerde linksets: bijvoorbeeld een handleiding onder het linktype voor een productinformatiewebsite of een serienummergebonden doel op GTIN-niveau. Schemavalidatie en inhoudelijke fixtures horen daarom bij elkaar.

### 4. De resolverbeschrijving controleren

Een conforme resolver stelt onder `/.well-known/gs1resolver` een machineleesbare beschrijving beschikbaar. Daarin staan onder meer de resolverbasis en de ondersteunde primaire sleutels. Het bestand moet valideren tegen het [GS1-schema voor resolverbeschrijvingsbestanden](https://ref.gs1.org/standards/resolver/1.2.0/description-file-schema).

Deze test voorkomt een veelvoorkomende inconsistentie: de dienst kan meer of minder dan zijn eigen beschrijving beweert. Neem daarom zowel schemavalidatie als een vergelijking met echte testgevallen op in de acceptatie.

### 5. CORS en content negotiation testen

CORS is geen gemaksfunctie. De standaard vereist dit zodat browsergebaseerde toepassingen de resolver domeinoverstijgend kunnen aanspreken. Test ten minste één toegestane browserorigin en het preflightpad. Controleer bovendien of `Accept: application/linkset+json` en `linkType=linkset` consistente resultaten opleveren.

Voeg een negatieve test toe voor een niet-ondersteund mediatype. Een dienst die ongeacht de `Accept`-header altijd HTML verstuurt, is wel voor mensen bereikbaar maar niet betrouwbaar machineleesbaar.

### 6. Taal, context en granulariteit afdekken

De standaard beschouwt `Accept-Language` en de queryparameter `context` als middelen om onderscheid te maken tussen meerdere passende links. Niet elke resolver hoeft elke variant aan te bieden. Als taal of context wordt ondersteund, moeten de selectieregels echter reproduceerbaar zijn.

Test daarom een beschikbare taal, een niet-beschikbare taal en een vastgelegde fallbackvolgorde. Voor GTIN, batch en serienummer geldt hetzelfde principe: een fijnmazige identifier mag relevante links van hogere niveaus meenemen zonder de inhoudelijke toewijzing te vertroebelen. Leg de verwachte linkverzameling vast als fixture; pure snapshottests op de volgorde zijn te fragiel.

### 7. Fouten semantisch onderscheiden

Foutcodes maken deel uit van het contract. De resolverstandaard schrijft voor syntactisch ongeldige GS1-identifiers een melding met HTTP 400 voor. Wanneer een concreet, niet-beschikbaar linktype wordt opgevraagd, is een redirect naar het standaarddoel juist niet het juiste antwoord. Zulke gevallen moeten worden onderscheiden van een onbekende maar syntactisch geldige identifier.

Controleer ook of foutantwoorden geen interne details, tokens of stacktraces prijsgeven en of `GET`, `HEAD` en browsergebaseerde aanvragen dezelfde semantiek behouden. Een fraai HTML-foutdocument kan een verkeerde statuscode niet compenseren.

## De GS1-testsuite correct inzetten

De openbare testsuite neemt een Digital-Link-URI in ontvangst en controleert het gedrag tegen Resolver 1.2.0. Ze is geschikt als onafhankelijke smoke- en conformiteitscontrole. Bewaar voor de vrijgave de testdatum, de geteste URI, de standaardversie, het resultaat en waar nodig reproduceerbare foutgevallen.

De suite vervangt echter geen eigen regressietests. GS1 vermeldt uitdrukkelijk dat compressie momenteel niet wordt gecontroleerd. Als uw resolver EPC-binaire strings of andere gecomprimeerde vormen verwerkt, hebt u daarvoor afzonderlijke testvectoren nodig. De openbare suite kent evenmin uw inhoudelijke linktypen of uw vereisten voor autorisatie, tenants of beschikbaarheid.

Een betrouwbaar proces combineert daarom drie niveaus:

1. de openbare GS1-suite als externe conformiteitscontrole;

2. schematests voor linkset en resolverbeschrijving in CI;

3. eigen end-to-endtests voor echte identifiers, rollen, talen en storingen.

## Wat in het vrijgavebewijs hoort

Een acceptatie is pas herhaalbaar wanneer het resultaat niet alleen in de browser zichtbaar maar ook gedocumenteerd is. Het vrijgavebewijs moet ten minste de standaard- en suiteversie, het testtijdstip, de doelomgeving, test-URI's, verwachte linktypen, HTTP-resultaten, schemavalidatie, CORS-controle en bekende uitzonderingen bevatten.

Automatiseer de stabiele onderdelen in CI, maar laat vóór elke ingrijpende resolverwijziging een gerichte externe run tegen de openbare suite uitvoeren. Zo wordt „de QR-code opent” een controleerbare uitspraak over identiteit, routering en machineleesbare productinformatie.

## Bronnen

- [GS1-Conformant Resolver Standard 1.2.0](https://ref.gs1.org/standards/resolver/)

- [GS1 Resolver Standard Archive – publicatie van 16 januari 2026](https://ref.gs1.org/standards/resolver/archive)

- [GS1 Digital Link Resolver Test Suite – code voor het laatst bijgewerkt op 29 juni 2026](https://ref.gs1.org/test-suites/resolver/)

- [GS1 Resolver 1.2.0-artefacten en normatieve schema's](https://ref.gs1.org/standards/resolver/artefacts)

- [IETF RFC 9264 – Linkset: Media Types and a Link Relation Type for Link Sets](https://datatracker.ietf.org/doc/html/rfc9264)

## Gerelateerde artikelen

- [![](https://qr3-blog-agent.meistern.workers.dev/cdn/blog/dpp-battery-passport-2027-20260715/hero.png) Branche-nieuws BatteryPass-Ready start testomgeving voor het digitale batterijpaspoort Het consortium BatteryPass-Ready heeft op 24 juni 2026 een openbare testomgeving voor het digitale batterijpaspoort gestart, met het oog op de EU-verplichting vanaf februari 2027.](/nl/blog/dpp-battery-passport-2027-20260715/)
- [![](https://qr3-blog-agent.meistern.workers.dev/cdn/blog/sector-20260713/hero.png) Branche-nieuws Digitale batterijpas 2027: wat fabrikanten nu moeten weten Webinars, opensourcetools en nieuwe normen: de EU-batterijpas komt op stoom. Een overzicht van de stand van zaken in juli 2026 en de openstaande vragen tot februari 2027.](/nl/blog/sector-20260713/)
- [![](https://qr3-blog-agent.meistern.workers.dev/cdn/blog/sector-20260711/hero.png) Branche-nieuws Digitale batterijpas 2026: testomgevingen, normen en open vragen Waar staat de industrie met de digitale batterijpas? Een overzicht van testomgevingen, CEN/CENELEC-normen, opensourcetools en regelgevende koersbepalingen in juli 2026.](/nl/blog/sector-20260711/)
- [![](https://qr3-blog-agent.meistern.workers.dev/cdn/blog/regulation-20260708/hero.png) Regelgeving Digitaal batterijpaspoort 2027: wat de EU-verordening echt voorschrijft Vanaf februari 2027 is het Digitale Batterijpaspoort verplicht. Wat (EU) 2023/1542 concreet vereist, waar de sector nog tekortschiet en welke normen nu gelden.](/nl/blog/regulation-20260708/)

[← Alle artikelen](/nl/blog/) [Gratis starten](https://app.qr3.app/sign-up)
