You are viewing an old version of this page. View the current version.
Compare with Current
View Page History
« Previous
Version 38
Next »
Over deze documentatie
In deze documentatie vindt u de API-specificaties waar uw applicatie moet aan voldoen om gebruikers van de gemeente app/Mijn Burgerprofiel app meldingen te laten doen. Zo kunt u met een beperkte configuratie meldingen beschikbaar maken in de gemeente app/Mijn Burgerprofiel app.
URL's en versiebeheer
De URL voor uw endpoint kan er als volgt uitzien:
https://<hostname>/v1/melding/configuration
De foutberichten die teruggeven worden moeten conform de API-design richtlijnen zijn. Deze zijn gebaseerd op RFC 7807 - Problem Details for HTTP API's.
Authenticatie
Het Vlaams Toegangsbeheer (ACM) wordt gebruikt als identity provider (IdP).
De authenticatie loopt via https://authenticatie.vlaanderen.be/docs/beveiligen-van-api/oauth-rest/ waarbij Mijn Burgerprofiel de afnemer (= Client) is en de dienstenleverancier als aanbieder (= Resource) optreedt.
Configuratie
Mijn Burgerprofiel haalt de configuratie op bij alle lokale besturen die zijn aangesloten bij een dienstenleverancier die een meldingen-applicatie aanbiedt. De dienstenleverancier bepaalt zelf voor welke lokale besturen een configuratie wordt teruggegeven.
Een configuratie bestaat uit:
Categorieën
Een melding kan worden gedaan voor meerdere categorieën. Een categorie bestaat uit:
id
: unique identifier, vaak een UUID
name
: betekenisvolle omschrijving van de categorie, bijv. wateroverlast, gebrek aan de weg, parkeerplaats, ….
parentId
(optioneel): via de parentId
worden hiërarchische niveau’s meegegeven aan de categorieën
JSON-schema
Mijn Burgerprofiel bepaalt aan de hand van het JSON-schema welke van onderstaande velden verplicht zijn:
description: omschrijving van de melding
location: adres of coördinaten
contactType: geeft aan op welke manier de melder zijn contact gegevens kan achterlaten (anoniem, authenticated, userInput)
contactattributen: firstname, lastname, rrn
adresattributen: street, number, box, zipcode, city
e-mail
phone
Bijlage
Het is mogelijk om de specificaties waaraan de bijlage (attachment bij de melding) moet voldoen te specificeren in de configuratie:
fileType: ondersteunde mediatypes in rfc6838-formaat
maxFileSize: maximale bestandsgrootte van één bijlage in KB
maxNumberOfFiles: het maximaal aantal bijlagen
Proces
Swagger-documentatie “Incidents” (Meldingen)
Voorbeeld JSON schema
JSON-Voorbeeld
{
"$schema": "http://json-schema.org/draft-07/schema",
"type": "object",
"required": [ "contactType", "contact" ],
"properties": {
"contactType": {
"oneOf": [
{ "const": "authenticated" },
{ "const": "userInput" }
]
},
"contact": { "$ref": "#/definitions/Contact" },
"location": { "$ref": "#/definitions/Location" }
},
"definitions": {
"Contact": {
"type": "object",
"required": [ "firstname", "lastname" ],
"properties": {
"firstname": { "type": "string" },
"lastname": { "type": "string" },
"rrn": { "type": "number" },
"address": { "$ref": "#/definitions/Address" },
"email": { "type": "string" },
"phone": { "type": "string" }
}
},
"Address": {
"type": "object",
"required": [ "street", "number", "city" ],
"properties": {
"street": { "type": "string" },
"number": { "type": "string" },
"box": { "type": "string" },
"zipcode": { "type": "string" },
"city": { "type": "string" }
}
},
"Location": {
"type": "object",
"properties": {
"address": { "$ref": "#/definitions/Address" },
"coordinates": { "$ref": "#/definitions/Coordinates" }
}
},
"Coordinates": {
"type": "object",
"properties": {
"long": {
"type": "number",
"format": "double"
},
"lat": {
"type": "number",
"format": "double"
},
"accuracy": {
"type": "number",
"format": "double"
}
}
}
}
}
Voorbeeld Response Configuraties
JSON-voorbeeld
{
"configurations": [
{
"nisCode": 71022,
"jsonSchema": {ZIE VOORBEELD JSON SCHEMA},
"categories": [
{
"id": "c69e981e-db0d-4e96-8e8d-1049d350f48e",
"name": "Groen, natuur en dieren"
},
{
"id": "f0bd611a-68a1-4e68-ad06-9000556a1d81",
"name": "Afval en reiniging"
},
{
"id": "3ddd7a61-c620-421d-9724-22070e670224",
"name": "Schade, defect"
},
{
"id": "7a005ef2-0c56-4be4-8a70-caed94831799",
"name": "Verkeer, parkeren"
},
{
"id": "0443dd74-37ec-4f6c-ba83-3efdb7706a0c",
"name": "Parkeren",
"parentId": "7a005ef2-0c56-4be4-8a70-caed94831799"
},
{
"id": "4b6de2f6-3cfe-4ccc-870b-5b1a4eb64763",
"name": "Verkeersveiligheid",
"parentId": "7a005ef2-0c56-4be4-8a70-caed94831799"
},
{
"id": "1999b1a9-464c-429b-8833-7e1db49ddc9c",
"name": "Wegenwerken",
"parentId": "7a005ef2-0c56-4be4-8a70-caed94831799"
},
{
"id": "6ea49d53-bdcf-4afa-9628-6a8a446be684",
"name": "Mindervalide parkeerplaats",
"parentId": "0443dd74-37ec-4f6c-ba83-3efdb7706a0c"
},
{
"id": "8bdff1d8-fba0-4f04-b3d7-5f16eec8e079",
"name": "Parkeerboete",
"parentId": "0443dd74-37ec-4f6c-ba83-3efdb7706a0c"
},
{
"id": "0b5789ab-78ef-4c0d-ac5d-ba993b27b380",
"name": "Groenonderhoud",
"parentId": "c69e981e-db0d-4e96-8e8d-1049d350f48e"
},
{
"id": "2dc7da40-54ef-48a4-b265-41a5eb24f656",
"name": "Dierenoverlast",
"parentId": "c69e981e-db0d-4e96-8e8d-1049d350f48e"
}
],
"attachment": {
"fileType": "image/*",
"maxFileSize": 3000,
"maxNumberOfFiles": 3
}
},
{
"nisCode": 12025,
"jsonSchema": {},
"categories": [
{
"id": "7c91800f-5e96-4876-9565-87c0f4831096",
"name": "voorbeeld categorie 1"
},
{
"id": "852f28ff-446f-4277-814d-f198e3bc5240",
"name": "voorbeeld categorie 2 "
}
],
"attachment": {
"fileType": [
"image/*, application/pdf, application/msword"
],
"maxFileSize": 500,
"maxNumberOfFiles": 5
}
}
]
}
Voorbeeld Request Meldingen
JSON-voorbeeld
{
"channel": "gemeenteApp",
"contactType": "authenticated",
"nisCode": 71022,
"categories": [
{
"id": "7a005ef2-0c56-4be4-8a70-caed94831799",
"name": "Verkeer, parkeren"
},
{
"id": "0443dd74-37ec-4f6c-ba83-3efdb7706a0c",
"name": "Parkeren",
"parentId": "7a005ef2-0c56-4be4-8a70-caed94831799"
},
{
"id": "6ea49d53-bdcf-4afa-9628-6a8a446be684",
"name": "Mindervalide parkeerplaats",
"parentId": "0443dd74-37ec-4f6c-ba83-3efdb7706a0c"
}
],
"description": "Markering van de mindervalide parkeerplaats is niet zichtbaar",
"location": {
"address": {
"street": "Meldertstraat",
"number": "5",
"zipcode": "3500",
"city": "Hasselt"
},
"coordinates": {
"long": 50.93060711270709,
"lat": 5.341160931979752,
"accuracy": 0.0
}
},
"contact": {
"firstname": "Jan",
"lastname": "Modaal",
"rrn": 91010100243,
"address": {
"street": "Limburgplein",
"number": "1",
"box": "b",
"zipcode": "3500",
"city": "hasselt"
},
"email": "jan.modaal@hotmail.com",
"phone": "+32476123456"
}
}