Coder Social home page Coder Social logo

workout_api's Introduction

FastAPI

O que é o FastAPI?

O FastAPI é um framework web moderno e de alto desempenho para construir APIs com Python 3.6 ou superior. Baseado nos type hints padrões do Python, o FastAPI oferece uma combinação única de alta performance, facilidade de aprendizado e produtividade.

Por que usar o FastAPI?

  • Alta Performance: O FastAPI é otimizado para alta performance, permitindo lidar com um grande volume de requisições de forma eficiente.
  • Fácil de Aprender e Codar: Graças à sua sintaxe intuitiva e baseada em type hints, o FastAPI é fácil de aprender e simplifica o processo de desenvolvimento.
  • Pronto para Produção: Com suporte para OpenAPI e geração automática de documentação interativa, o FastAPI é adequado para projetos de qualquer tamanho, desde protótipos até aplicativos de produção robustos.

Async

Código assíncrono apenas significa que a linguagem tem um jeito de dizer para o computador / programa que em certo ponto, ele terá que esperar por algo para finalizar em outro lugar

Projeto

WorkoutAPI

Esta é uma API de competição de crossfit chamada WorkoutAPI (isso mesmo rs, eu acabei unificando duas coisas que gosto: codar e treinar). É uma API pequena, devido a ser um projeto mais hands-on e simplificado nós desenvolveremos uma API de poucas tabelas, mas com o necessário para você aprender como utilizar o FastAPI.

Modelagem de entidade e relacionamento - MER

MER

Stack da API

A API foi desenvolvida utilizando o fastapi (async), junto das seguintes libs: alembic, SQLAlchemy, pydantic. Para salvar os dados está sendo utilizando o postgres, por meio do docker.

Execução da API

Para executar o projeto, utilizei a pyenv, com a versão 3.11.4 do python para o ambiente virtual.

Caso opte por usar pyenv, após instalar, execute:

pyenv virtualenv 3.11.4 workoutapi
pyenv activate workoutapi
pip install -r requirements.txt

Para subir o banco de dados, caso não tenha o docker-compose instalado, faça a instalação e logo em seguida, execute:

make run-docker

Para criar uma migration nova, execute:

make create-migrations d="nome_da_migration"

Para criar o banco de dados, execute:

make run-migrations

API

Para subir a API, execute:

make run

e acesse: http://127.0.0.1:8000/docs

Desafio Final

- adicionar query parameters nos endpoints
    - atleta
        - nome
        - cpf
- customizar response de retorno de endpoints
    - get all
        - atleta
            - nome
            - centro_treinamento
            - categoria
- Manipular exceção de integridade dos dados em cada módulo/tabela
    - sqlalchemy.exc.IntegrityError e devolver a seguinte mensagem: “Já existe um atleta cadastrado com o cpf: x”
    - status_code: 303
- Adicionar paginação utilizando a lib: fastapi-pagination
    - limit e offset

Referências

FastAPI: https://fastapi.tiangolo.com/

Pydantic: https://docs.pydantic.dev/latest/

SQLAlchemy: https://docs.sqlalchemy.org/en/20/

Alembic: https://alembic.sqlalchemy.org/en/latest/

Fastapi-pagination: https://uriyyo-fastapi-pagination.netlify.app/

workout_api's People

Contributors

nayannanara avatar guilhermejr92 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.