GeoHealthCheck
GeoHealthCheck copied to clipboard
Create, Read, Update, Delete Resources Programatically (API?)
User Story
As a developer I want to programmatically Create, read, update delete resources So that I can integrate health checking into my application
Proposal
- Implement a CRUD API
- Implement API keys for registered users
- allow the creation of new resources through JSON or XML api
- implement CRUD
- Create new resource: http://server/resource/create
- Read (implemented?): http://server/resource/1/
- Update: http://server/resource/1/update
- Delete: http://server/resource/1/delete
Use Case
- A user with an account at http://geohealthcheck.osgeo.org/ gets an API key
- from an application such as GeoNetwork (http://geonetwork-opensource.org/)
- requires some collaboration perhaps for a reference implementation
- requires some settings added to an admin panel
- A Geonetwork user enters a new WMS endpoint as a resource to a metadata record
- The GeoNetwork catalogue then checks GHC if the resource exists and is monitored eg. http://geohealthcheck.osgeo.org/json?resource_type=OGC%3AWMS
- it starts by checking if the domain name is being tracked
- It then checks to see if a WMS service on that domain is being monitored http://geohealthcheck.osgeo.org/json?resource_type=OGC%3AWMS 1.1 if so then the API returns the URL(s) of the candidate resource(s) 1.2 if not then the API return the URL to create a new resource
- details of the new resource to create are posted to http://geohealthcheck.osgeo.org/create
- new resource is created and then discovered at http://geohealthcheck.osgeo.org/json?resource_type=OGC%3AWMS
- Geonetwork then is able to probe the health checking server for the resource
- Depending on the status of the health check the developer can add red, green, yellow icon next to resource in the application (aka GeoNetwork)
Notes
- Some implementations of ArcGIS server actually have a unique endpoint per resource, feature or layer. So you might have multiple services at a single domain and therefore you may want o constrain monitoring to a single service. Perhaps assuming that if one service on the domain is running then all would be running/