Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Er moeten links worden voorzien zodat de client door de verschillende pagina’s met attesten en vergunningen kan navigeren. Zie ook HATEOAS voor meer informatie en voorbeelden.

De respons response moet altijd een paginering hebben. De metadata bij de pagina’s moet deel uitmaken van de payload zodat de client weet hoeveel attesten en vergunningen er zijn, op welke pagina’s die staan, enz. Zie ook de voorbeelden hieronder.

...

Request (

...

voorbeeld)

  • Headers: Authorization: Bearer XyZAbCd1234

  • Method: GET

  • URL https://burgerprofiel.vlaanderen.be/v1/certificates/90061638302/85144567-7043-4469-9e79-279f4eb31e27/nl

Response

...

(voorbeeld)

Code Block
{
  "id": "85144567-7043-4469-9e79-279f4eb31e27",
  "language" : "nl",
  "name": "certificate-1234",
  "links": [
    {
      "rel": "self",
      "href": "https://burgerprofiel.vlaanderen.be/v1/certificates/90061638302/85144567-7043-4469-9e79-279f4eb31e27/nl"
    },
    {
      "rel": "download",
      "href": "https://burgerprofiel.vlaanderen.be/v1/certificates/90061638302/85144567-7043-4469-9e79-279f4eb31e27/nl/download"
    }
  ]
}

HATEOAS

Over HATEOAS

Als de specificaties worden gevolgd, zijn alle API’s conform HATEOAS (Hypermedia As The Engine Of Application State). Waarom is dit zo belangrijk? Deze architecturale component zorgt ervoor dat een REST-client de API volledig ontdekt, zonder voorafgaande kennis. Alleen het entrypoint van de API is hiervoor nodig. Van daar kan de client door de API ‘crawlen’ door relaties (rels) en referenties (hrefs) te gebruiken.

Bij Digitaal Vlaanderen kunnen we dankzij HATEOAS uw API volledig ontdekken zonder een client te schrijven met specifieke kennis over uw API.

Hoe implementeren?

Volg de onderstaande voorbeelden. Voeg HATEOAS toe aan uw uw API door de links-sectie toe te voegen. De links-sectie moet beschikbaar zijn voor de lijst met attesten/vergunningen en bij de details van een specifiek attest/vergunning.

Een links-sectie voor een lijst attesten/vergunningen ziet er gewoonlijk als volgt uit:

Code Block
"links": [
    {
      "rel": "self",
      "href": "https://burgerprofiel.vlaanderen.be/v1/certificates/90061638302?limit=10&page=0"
    },
    {
      "rel": "next",
      "href": "https://burgerprofiel.vlaanderen.be/v1/certificates/90061638302?limit=10&page=1"
    }
    {
      "rel": "start",
      "href": "https://burgerprofiel.vlaanderen.be/v1/certificates/90061638302?limit=10&page=0"
    },
    {
      "rel": "last",
      "href": "https://burgerprofiel.vlaanderen.be/v1/certificates/90061638302?limit=10&page=1"
    }
]

De volgende 4 verschillende relaties moeten aanwezig zijn

  • self (verplicht) de href-verwijzingen naar de huidige pagina

  • next (verplicht op voorwaarde dat er meerdere pagina’s zijn) de href-verwijzingen naar de volgende pagina in de gepagineerde collectie. Moet er alleen zijn als er effectief een volgende pagina is om naar te verwijzen

  • start (verplicht) de href-verwijzing naar de eerste pagina van de collectie to the start page of the collection.

  • last (verplicht) de href-verwijzing naar de laatste pagina van de collectie

Een links-sectie voor de detailinformatie bij de attesten/vergunningen ziet er gewoonlijk als volgt uit:

Code Block
"links": [
    {
      "rel": "self",
      "href": "https://burgerprofiel.vlaanderen.be/v1/certificates/90061638302/85144567-7043-4469-9e79-279f4eb31e27/nl"
    },
    {
      "rel": "download",
      "href": "https://burgerprofiel.vlaanderen.be/v1/certificates/90061638302/85144567-7043-4469-9e79-279f4eb31e27/nl/download"
    }
]

De volgende 2 verschillende relaties moeten aanwezig zijn

  • self (verplicht) de href-verwijzing naar de detailinformatie bij het attest/vergunning

  • download (verplicht) de href-verwijzing naar de downloadlink bij het attest/vergunning. Dit moet een directe link zijn, die gestreamd kan worden naar de gebruiker.