GSoC 2020 Data transaction implementation on pygeoapi

From OSGeo
Revision as of 09:47, 6 June 2020 by Alex-mathew (talk | contribs)
Jump to navigation Jump to search

Introduction

Idea

pygeoapi is a python server implementation of the OGC API suite of standards. The project emerged as part of the next generation OGC API efforts in 2018 and provides the capability for organizations to deploy a RESTful OGC API endpoint using OpenAPI, GeoJSON, and HTML. pygeoapi is open source and released under an MIT license.

This GSoC project aims to add support for simple transactions in pygeoapi. This project will implement Create, Update, Delete operations in pygeoapi data providers, thereby enabling all standard CRUD transactions in pygeoapi. This will enable an application developer to perform a transaction in a pygeoapi data provider through an HTTP request containing the resource id and suitable HTTP verb (POST/PUT/DELETE/PATCH). The project proposal is based on OGC API - Features - Part 4: Simple Transactions.

Project proposal

My proposal for GSoC 2020 can be found at Proposal.

Advantages from this project

pygeoapi implements OGC WFS 3.0 (OGC Feature API) which is fully RESTful. This makes it much easier for the application developers to work with. This project idea implements 'Part 4 : Simple Transactions' of this OGC standard. It adds transactional capabilities to the pygeoapi data providers by which application developers can perform transactions via the RESTful API itself. A RESTful API supporting complete CRUD transactions will be preferred by most application developers over other non-RESTful APIs. So this will make pygeoapi a more popular choice among application developers.


Link to Github repository: Repo

Timeline

4th May - 31st May

Community bonding period: What I have done during this period?

  • Joined pygeoapi Gitter room
  • Went through the current features of pygeoapi
  • Went through OGC API - Features - Part 4: Simple Transactions [1] draft
  • Forked the pygeoapi GitHub repository Repository
  • Introduced myself over the channel and shared my proposal over mailing list for suggestions
  • Created a wiki page for the project "Data transaction implementation on pygeoapi"
  • Updated wiki user page and added my personal information [Link]
  • Updated links on the wiki Google_Summer_of_Code_2020_Accepted page [Link]
  • Had a discussion with mentors regarding the expectations and development workflow
  • Discussed the openapi specification document with the mentors
  • Started working on the openapi document

1st June - 7th June

Coding Week 1:

What I have done during this period?

  • Defined openapi document schemas for remove(DELETE), insert(POST), modify(PATCH), replace(PUT) transactions
  • Pushed the proposed openapi document sample to the openapidoc branch in my forked repo
  • Shared the doc with pygeoapi community for suggestions

What do I plan on doing next week?

  • Modify openapi.py file so that it generates the proposed openapi document
  • Test the code for compliance

Blocking issues

None

Student's Biography

My name is Alex Mathew. I am a computer science graduate now pursuing my masters in geoinformatics under the Centre of Studies in Resources Engineering, Indian Institute of Technology Bombay, Mumbai, India. Some more information about me can be obtained by following the link: [Link]

Mentors

  • Jorge de Jesus
  • Francesco Bartoli