Skip to content

Latest commit

 

History

History
99 lines (68 loc) · 3.21 KB

overview.rst

File metadata and controls

99 lines (68 loc) · 3.21 KB

Overview

This is the developer documentation of the Faraday server. If you are a user instead, you should go to the Faraday Wiki at GitHub.

The Faraday server ecosystem

We are using the following Python libraries to keep our server running:

A minimalistic web framework for Python with a great (but a bit messy) ecosystem.

A really powerful but complex Object Relational Mapper for Python that allows us to map results of SQL queries to instances of Python objects. Sometimes it looks made by Java developers rather than Python devs.

A pretty simple library to create RESTful API endpoints inside a class defining one or many routes related to that endpoint. Is takes the idea of Flask Pluggable Views.

The library is a fork of Flask-Classy, a library that stopped being maintained 4 years ago.

Framework-agnostic serialization and deserialization library to define the input and output schema of our RESTful API in a declarative, pythonic web. It is heavily inspired on Django REST Framework serializers, but with the goal of supporting many frameworks and ORMs

A library prodiving a users and role system with support with Flask and SQLAlchemy. It gives us customizable registration and login endpoints.

It was build on top of other common Flask libraries such as:

Other libraries we use

  • Flask-SQLAlchemy provides us a nice way to use the framework and the ORM together. It also has a good pagination system that is used on many API endpoints
  • Webargs to parse the request arguments given a Marshmallow Schema
  • Depot to have pluggable file storage backends