OGC API Features: enhanced usability for existing WFS services
In this workshop we will set up “OGC API - Features” service which will provide a simple RESTful API and additional output formats like GeoJson, HTML and JSON-LD. These representations are created on the fly using live data from the existing WFS service(s).
The emerging OGC API standards are an important step to make spatial data more easily accessible using open standards and in Web APIs. OGC API Features, formerly known as “WFS 3.0” (it started as a revision of the OGC WFS standard) has been leading this process. After two years of intensive implementation and testing the first part of OGC API Features has been approved and published by OGC. This OGC blog post has additional information about OGC API.
In this workshop you will learn:
- how OGC API Features differs from WFS and why;
- how to set up a Web API facade supporting OGC API standards in front of an existing WFS using ldproxy;
- how your Web API makes the data more accessible and easier to use for both developers and users;
- how to update the configuration of your Web API to further improve usability.
ldproxy is an open source implementation for geospatial Web APIs supporting the OGC API standards. One option is to use ldproxy as a proxy in front of existing WFS services and provides a simple Web API and additional output formats like GeoJSON and HTML. These representations are created on the fly using live data from the WFS.
In the workshop we will be using a development version of ldproxy 2.0, which is expected to be released late 2019 or early 2020. The reason for using the development version is that it has aready been updated to conform to the published standard and it supports additional capabilities.
What skills are requried?
We will demonstrate all steps in detail and use live services to explain and demonstrate the OGC API concepts. Basic knowledge of OGC WFS, JSON and GeoJSON will help, but is not essential.
You are encouraged to set up your own Web API during the workshop and follow the steps hands-on. For this, you will need to deploy ldproxy on your maschine. The easiest way to do this is to use Docker, which must be installed on your computer before the workshop - see the next section.
Preparation before the workshop
This is only required, if you want to play with your own Web API on your notebook during the workshop.
As mentioned above the easiest way to deploy ldproxy on your machine is to use Docker. If you are new to Docker, have a look at the Docker Documentation. Getting started with Docker is straightforward on Linux or macOS. On Windows, you are more likely to encounter issues depending on your local setup and permissions. For example, you may need to open ports in your firewall.
Once Docker is up and running, you can deploy ldproxy on your machine.
Create a directory for the ldproxy data on your machine (e.g.
~/ldproxy_data). Make sure it is a directory that is shared with Docker.
Download and start ldproxy on port 80:
docker run --name ldproxy -d -p 80:7080 -v C:/ldproxy_data:/ldproxy/data iide/ldproxy:t15. This downloads the latest ldproxy docker container from the t15-development branch.
Once the docker container has been downloaded, ldproxy will start. After a minute or so open
http://localhost/in your browser and you should be redirected to
http://localhost/manager/#/servicesand see the ldproxy manager.
We continue to update the current ldproxy development branch before the workshop, so if you have deployed ldproxy on your machine before 21 October 2019, please check before the workshop, if a newer version of the t15 branch of ldproxy is available on docker Hub. In this case, follow the clean-up instructions below and redeploy ldproxy using the steps above.
See also the section Deploying ldproxy in the ldproxy documentation.
Clean up after the workshop
To remove the installation and the files again:
- Delete the ldproxy data directory e.g.
- Stop ldproxy using
docker stop ldproxyand then remove the container using
docker rm ldproxy.
Sample WFS services
If you have a URL of a public WFS 2.0 with data that you are interested in, great, but here is a short list of some sample WFS URLs that you can use, too.
Cadastral dataset from North-Rhine Westphalia in Germany. This is the same WFS 2.0 that is available using an older version of ldproxy at https://www.ldproxy.nrw.de/kataster.
Various landscape data from the Netherlands.
Charging stations for electric cars in the city of Hamburg, Germany.
Various INSPIRE data from SYKE in Finland.
Address data from the Netherlands.
1:1000000 topographic data from Germany.
World Soil Information Service (WoSIS) data.