Currently, the web RESTful API of Software Heritage is implemented using the Flask framework (http://flask.pocoo.org/).
A Web UI for easily navigating in the archive will be created soon and the Django framework (https://www.djangoproject.com/) will be used to implement it.
Using the Django framework is an obvious choice as it offers numerous builtins features and enables to quickly design
and implement Web apps in Python. Moreover, it is really well documented and there is a large community around it that
contributes to extend its functionnalities.
In order to ease the development and the maintenance of the SWH Web applications, we should use the same Web framework for the RESTful API
and the Web UI. Thus, the RESTful API implementation should be rewritten using the Django REST framework (http://www.django-rest-framework.org/).
Regarding the developments to perform, I currently see three high level tasks:
- [] Implement a prototype for the Web API with the Django REST framework offering the same features as the currently available one (https://archive.softwareheritage.org/api/)
- [] Migrate the SWH Web API implementation from Flask to Django REST framework
- [] Implement the Web UI for navigating into the archive with Django