branning / geocoder

Geocoder proxy with multiple backends

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Geocoder Proxy

A RESTful web service in Python that gives latitude and longitude coordinates for addresses. The service itself does not have any geolocation smarts, but instead it serves as an interface to other services that do.

Reverse Geocoding Backends

These services are supported:

Configuration

This project follows the configuration practices of 12 Factor Apps, and stores its configuration in the environment. For instance, the API keys for the geocoder backends are provided to the application this way.

The envparse package is used to aid this process, and allows loading envronment variables from a convenient .env file.

API Server

The RESTful endpoints are defined in OpenAPI / Swagger 2.0 format, and can be found in swagger/geocoder.yaml. Clients for the API can be generated using that file, and API documentation is also generated from it.

Testing

Unit tests are written using pytest.

Integration tests of the running API server use the HTTPie client. You could also use the example cURL commands from the Swagger documentation.

Security

The server will refuse to run without HTTPS. Self-signed certificates are generated automatically using openssl

About

Geocoder proxy with multiple backends

License:MIT License