GeoPython2019

pyramid_georest
2019-06-25, 10:15–10:45, Room 2

pyramid_georest is a small and handy open source plugin for the pyramid web framework. It enables a restful interface to utilize sqlalchemy and geoalchemy. As an restful API it offers all necessary entry points to handle spatial data stored in a database via web services. In addition it offers a filter possibility (generic and spatial) and paging.


There are a plenty of RESTful API's out there. However often the simple support for spatial data is a little bit underrepresented. The pyramid_georest (github.com) package tries to offer exactly this.

pyramid plugin

The package is designed to integrate the best in a pyramid web framework application. It makes use of the very elaborated mechanisms pyramid offers to provide valid RESTful web services interface (DOC).

Class based

The library is designed for a usage on class/object level. This enables easy sub classing for additional implementations like pre filtering, user authentication or any other special behaviours whished by user.

Complex Filters

Since handling of data is always complicated this is true for suitable filters as well. Using pyramid_oereb enables the complex filtering possibilities from the web. It is possible to access a dedicated record via URL directly of course. But often (especially in spatial world) filters are more complex and targeted to obtain more then one record. So pyramid_georest offers a easy to use (near SQL logic) filter approach via HTTP-POST requests. So there are no limits in complexity.

Model description

Accessing database data is always about knowledge of data models. To make usage of pyramid_georest easy on the client side, it offers a model description per database resource. This already takes care of type wrapping to support javascript types for instance. Because of its class based approach this can be overwritten by sub classing of course.
Based on the model description you can generate easy web forms or rich GUI's for reading and manipulating data.

Integrates perfectly

Based on several projects I can proof its interoperability with client libraries like ExtJS or even better with Angular. Combining the model descriptions and the services enables you to produce rich GUI's to access and edit data.

Multiformat support

Per default pyramid_georest ships with XML, JSON and GEOJSON support. Since it uses the renderer approach (DOC) provided by pyramid web framework extracting the data from database is format less. Only delivering it through a renderer formats the data in desired format. This enables various other formats as wished. It would be possible to provide a ready made HTML form by this library easily.