[SoC] GSoC 2020 Final Report (Data transaction implementation on pygeoapi)

Alex Mathew pingalex94 at gmail.com
Mon Aug 31 10:46:27 PDT 2020


Hello everyone,

It had been a great experience with a lot of learning in the past 3 months.
You can find my final report here
<https://github.com/alex-mathew/pygeoapi/wiki/Final-Report-GSoC-2020>. This
report is in accordance with the guidelines set by Google
<https://developers.google.com/open-source/gsoc/help/work-product> and OSGeo
GSoC Admins <https://lists.osgeo.org/pipermail/soc/2020-August/004612.html>.

*Title* - Simple Data Transactions in pygeoapi

*Organization* - pygeoapi under OSGeo

*Abstract* - pygeoapi is a python server implementation of OGC RESTful API
standards. OGC API - Features provide API building blocks to create,
modify, and query features on the Web. It consists of multiple parts, each
of them is a separate standard. The project focuses on Implementing support
for Simple Transactions in pygeoapi. Simple Transactions means transactions
on a single data item (feature). This makes pygeoapi a complete CRUD
(Create-Read-Update-Delete) solution for features on the web.

*State of the Project Before GSoC - *pygeoapi had only Part 1 (Core) and
Part 2 (CRS by Reference) implementations of OGC API - Features
implemented. So the only operation supported was GET.
*The addition that my project brought to pygeoapi*
Implemented *Part 4: Simple Transactions of OGC API - Features*. This
includes:
*POST*: Inserts a new feature item into a collection
*PUT*: Replaces an existing feature item in a collection
*PATCH*: Updates an existing feature item in a collection
*DELETE*: Deletes an existing feature item from a collection


*Summary of Work done*i. Created a sample openapi specification doc in
accordance with Simple Transactions Proposal
ii. Generated the proposed openapi doc from pygeoapi config
iii. Defined REST endpoints for simple transactions (POST, PUT, PATCH,
DELETE) in Flask and Starlette
iv. Updated pygeoapi core API to handle feature transactions
v. Implemented simple transactions in schemaless data providers - GeoJSON,
CSV
vi. Implemented simple transactions in schemaful data providers -
PostgreSQL, SQLite

*What is left to implement*
There is a bug left unfixed in transaction implementation for the SQLite
provider. The geometry from the POST payload is not getting loaded into the
SQLite table.

*Future Opportunities*
Currently, transactions have been implemented in 4 of the data providers
which come out of the box with pygeoapi - GeoJSON, CSV, Postgres, SQLite.
This can be extended to other data providers like Elasticsearch.

*Links*
i. Link to Repository:
https://github.com/alex-mathew/pygeoapi
ii. User documentation for transactions extension:
https://pygeoapi-data-transaction.readthedocs.io/en/data-transaction-gsoc-3/configuration.html#data-transactions
https://pygeoapi-data-transaction.readthedocs.io/en/data-transaction-gsoc-3/data-transactions.html
iii. OSGeo wiki link of the project:
 https://wiki.osgeo.org/wiki/GSoC_2020_Data_transaction_implementation_on_pygeoapi
<https://pygeoapi-data-transaction.readthedocs.io/en/data-transaction-gsoc-3/data-transactions.html>
iv. Pull Requests:
https://github.com/geopython/pygeoapi/pull/483
https://github.com/geopython/pygeoapi/pull/518
https://github.com/geopython/pygeoapi/pull/524
v. GitHub Wiki Page:
https://github.com/alex-mathew/pygeoapi/wiki/Final-Report-GSoC-2020

Thanks,
Alex Mathew
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/soc/attachments/20200831/25746cc1/attachment.html>


More information about the SoC mailing list