Giter Club home page Giter Club logo

pycon-fastapi-example's Introduction

Guía paso a paso

6. Versionado y obsolescencia de endpoints

  • Editar modelo para las pruebas.
  • Generar un nuevo endpoint.
  • Instalación de fastapi-versioning.
  • Agregar versionado en main.py
  • Generar la versión superior del endpoint anterior y marcar como deprecado el anterior.

5. Añadir logs a nuestra API

  • Definir ruta del fichero de configuración de los logs en el settings.
  • Añadir carga de la configuración de logs en main.py.
  • Usar los logs importando logging y registrar de la mejor manera posible toda invocación a nuestros endpoints.

4. Agrupar el código y leer constantes de settings

  • Instalación de pydantic-settings para las constantes del proyecto
  • Mover a models/ los modelos
  • Mover a routers/ los endpoints y agruparlos por tipo
  • Generar settings para las constantes del proyecto
  • Crear .env y .secrets para las constantes públicas y privadas
  • Adaptar código en main.py
  • Nuevo comando para ejecutar el proyecto: python src/run.py

3. Añadir validadores de esquemas y ORM

  • Instalación de beanie (ODM [object-document mapper] basado en pydantic).
  • Crear modelos para la validación de request y response de los endpoints.
  • Actualizar endpoints con los modelos.
  • Eliminar get_db, no será necesario gracias a beanie.

2. Añadir endpoint con accesos a base de datos

  • Instalación de "motor" (driver para conexiones a mongo de manera asíncrona).
  • Creación de los endpoints GET /posts y POST /posts
  • Creación de una instancia del driver, mongo_db.
  • Creación una función para inyectar el driver a base de datos en cada endpoint.
  • Añadir dos eventos a la API, que mantendrá el cliente de mongo abierto y tras morir el servidor matará el cliente.
  • Probar en http://localhost:8000/docs

1. Creación servidor mínimo

Realizar la instalación de dependencias

pip install -r requirements.txt

Ejecutar servidor

uvicorn src.main:app --reload

Probar endpoints

pycon-fastapi-example's People

Contributors

amebalibre avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.