Django REST framework is a powerful and flexible toolkit for building Web APIs.
In order to use a single Python Web framework in SWH components, the Web API should be rewritten using the Django REST framework (http://www.django-rest-framework.org/) instead of Flask.
The main advantages of the Django REST framework compared to Flask are:
- automatic genration of Web browsable API.
- support for Authentication policies including packages for OAuth1a and OAuth2.
- serialization that supports both ORM and non-ORM data sources.
- customizable all the way down - just use regular function-based views if you don't need the more powerful features.
- extensive documentation, and great community support.
First step to achieve that goal is to write a prototype of the SWH API using Django that will at least offer the same features as the currently available one (https://archive.softwareheritage.org/api/).
Below are some tasks related to that work :
- create a playground git repository to host the prototype development
- implement the prototype