geopython / geopython/GeoHealthCheck

Create, Read, Update, Delete Resources Programatically (API?)

Open
#20 0 comments 1 reaction 0 assignees View on GitHub
enhancement
Dominant language
Python
Stars
92
Forks
75
PR merge metrics
No merged PRs in 30d

Description

## 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
1. A user with an account at http://geohealthcheck.osgeo.org/ gets an API key
2. 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
3. A Geonetwork user enters a new WMS endpoint as a resource to a metadata record
4. The GeoNetwork catalogue then checks GHC if the resource exists and is monitored eg. http://geohealthcheck.osgeo.org/json?resource_type=OGC%3AWMS
5. it starts by checking if the domain name is being tracked
6. 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
7. details of the new resource to create are posted to http://geohealthcheck.osgeo.org/create
8. new resource is created and then discovered at http://geohealthcheck.osgeo.org/json?resource_type=OGC%3AWMS
9. Geonetwork then is able to probe the health checking server for the resource
10. 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/

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.