Standards Compliance
REST API
The DSO-API follows the guidelines from DSO (Digitaal Stelsel Omgevingswet). They define the API design rules for government based API’s in The Netherlands:
https://aandeslagmetdeomgevingswet.nl/digitaal-stelsel/aansluiten/standaarden/api-en-uri-strategie/
We also confirm with the “NL Designrules”, which tries to update the DSO 2 standard to a living document: https://docs.geostandaarden.nl/api/API-Strategie-ext/
The standards follow an “apply or explain” approach (in Dutch: “pas toe of leg uit”), where implementations can opt-in to follow more rules, or have to explain very well why they’ve deviated from them.
The following logic is implemented by the rest_framework_dso
package:
HAL links
{"_links": {"self": {"href": ..., "title": ...}}}
The
?_expand=true
option to sideload all related objects.The
?_expandScope=relation1,relation2
to receive related objects in the same response.The
?_fields=...
option to limit which fields to return, with the DSO 1.0?fields=..
as fallback.The
?_sort=...
parameter, and the DSO 1.0?sorteer=..
as fallbackNo envelope for single-object / detail views.
Additionally:
We support
?_pageSize=...
to change the REST page size, with?page_size=..
as fallback.We support
?_format=..
to request other output formats (e.g.json
,geojson
orcsv
)We support temporal filtering with
?geldigOp=date
.Fields are written as “camelCase”
Not implemented (yet):
Subfields:
?_fields=field1.subfield
Wildcard search with
?_find=...
Queries with GeoJSON POST requests.
WFS Endpoints
The WFS endpoint implements most of the WFS 2.0 Basic Conformance level, and some older WFS 1.0 filter syntax which is still used by clients. This allows applications like QGis to work properly with the endpoints. Technical details can be found in the django-gisserver documentation.