Changes

Jump to navigation Jump to search
m
Few fixes
Line 13: Line 13:  
** Data should be easy to reuse by developers.
 
** Data should be easy to reuse by developers.
 
*** A dynamic API documentation should be really helpful.
 
*** A dynamic API documentation should be really helpful.
 +
** All the data need to be versioned, for transparency and history concerns.
    
== Technical choices ==
 
== Technical choices ==
Line 22: Line 23:  
** Python is widely adopted (one of the main languages taught at school).
 
** Python is widely adopted (one of the main languages taught at school).
 
** It scales well.
 
** It scales well.
** Part of team knows Python.
+
** Part of the team knows Python.
* Building an API from scratch would have been too long so choose the FastAPI framework which integrates interesting benefits:
+
* Building an API from scratch would have been too long, so choose the FastAPI framework which integrates interesting benefits:
** Building an API with FastAPI is very easy: it's possible to build a simple API with its generated dynamic documentation in a few hours.
+
** [https://www.tutlinks.com/fastapi-with-postgresql-crud-async/ Building an API with FastAPI is very easy]: it's possible to build a simple API with its generated dynamic documentation in a few hours.
** Said to be fast: https://www.techempower.com/ benchmarks are showing it is ~3 times faster than very porpular Python framework such as Django or Flask.
+
** Said to be fast: https://www.techempower.com/ benchmarks are showing it is ~3 times faster than very popular Python framework such as Django or Flask.
 
** FastAPI can be run with or without a web server.
 
** FastAPI can be run with or without a web server.
    
==== Database ====
 
==== Database ====
Folksonomy Engine has a very different goals and requirements than Open Food Facts backend (Perl + MongoDB):
+
Folksonomy Engine has very different goals and requirements than Open Food Facts backend (Perl + MongoDB):
    
* The data model should be very simple.
 
* The data model should be very simple.

Navigation menu