Comprehensive Fast API Tutorial

This page summarizes the projects mentioned and recommended in the original post on /r/Python

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • cog

    Discontinued Portland Cognition Lab (by chromakey-io)

  • Here's how (some complete asshole) might implement for example OIDC-JWT with Auth0: https://github.com/chromakey-io/cog/tree/master/auth. This sits as a starlette AuthBackend, that follows along with conventions similar to Flask, Django, etc .... and is directly ripped off from Auth0's flask examples.

  • spectree

    API spec validator and OpenAPI document generator for Python web frameworks.

  • For those of you that are fans of Pydantic: https://github.com/0b01001001/spectree (this is cross-platform with flask, falcon, and starlette :) It also doesn't re-implement anything the encode/starlette developers have already implemented, or have in the works for no specific reason. I'm not a huge fan of this design pattern, I'm more a lean/mean sort of fellow. openapi schema generation exists in starlette ... and you likely already are doing some sort of type validation once in your forms, json, orm, sql layer, or all four. An additional layer to validate "automatically" in your response (lol no), or in your request ... aren't all that useful imo.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • fastapi

    FastAPI framework, high performance, easy to learn, fast to code, ready for production

  • Fundamentally confused as to why you think it's not a Starlette request object underneath. FastAPI simply re-exports the Starlette request object from fastapi.requests as seen here. So, yes, in fact it most certainly is a Starlette request underneath. In fact, the entire routing system subclasses Starlette's base routing classes as seen here. The FastAPI class itself subclasses Starlette.

  • dispatch

    All of the ad-hoc things you're doing to manage incidents today, done for you, and much more!

  • Look at Netflix' dispatch for example and tell me you don’t think this is terrible violation of DRY and makes for some really hard to maintain code.

  • databases

    Async database support for Python. 🗄

  • databases has since the time of FastAPI's authorship been integrated in upstream starlette and documented: https://github.com/encode/databases ... what-ever is in fastapi skips all this and is weak sauce.

  • fastapi-router-controller

    A FastAPI utility to allow Controller Class usage

  • The whole thing about "not seperating the configuration from the view code" is pretty broken, glueing everything to the functions makes it a mess. it makes it hard to add additional features (CBV class based views) -> https://github.com/KiraPC/fastapi-router-controller

  • cornice.ext.swagger

    Swagger extension for Cornice

  • In the end the only thing i needed is openapi be generated for me. I was looking for a newer stack (pydantic, asyncio) that i used before -> (pyramid, colander) https://github.com/Cornices/cornice.ext.swagger but now i ended up reimplementing sever side sessions, class based views, jwt auth.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts