[[FastAPI]] é um framework web moderno e de alta performance para construir APIs com [[Linguagem de programação Python|Python]] 3.8+. Ele se destaca por ser baseado em _type hints_ padrão do Python, o que permite validação de dados, serialização e documentação automática.
# O que é FastAPI?
FastAPI é construído sobre duas bibliotecas principais:
* [[Starlette]]: Um framework ASGI leve para construir serviços assíncronos de alta performance.
* [[Pydantic]]: Uma biblioteca para validação de dados e configurações usando _type hints_ do Python.
Essa combinação permite que o FastAPI ofereça um desempenho excepcional e uma experiência de desenvolvimento robusta.
# Principais Características
* **Performance Elevada**:
* Desempenho muito alto, comparável a frameworks como NodeJS e Go.
* É um dos frameworks [[Linguagem de programação Python|Python]] mais rápidos disponíveis, graças à sua base em [[Starlette]] e [[Pydantic]].
* **Experiência do Desenvolvedor Otimizada**:
* **Rápido para Codificar**: Aumenta significativamente a velocidade de desenvolvimento de funcionalidades.
* **Menos Bugs**: Reduz a ocorrência de erros induzidos por desenvolvedores, aproveitando a validação de tipos.
* **Intuitivo**: Oferece excelente suporte ao editor (autocompletar em todo lugar) e minimiza o tempo de [[Debugging]].
* **Fácil de Usar**: Projetado para ser fácil de aprender, reduzindo o tempo gasto na leitura de documentação.
* **Código Conciso**: Minimiza a duplicação de código, extraindo múltiplos recursos de cada declaração de parâmetro.
* **Robustez e Conformidade com Padrões**:
* **Pronto para Produção**: Gera código robusto e confiável.
* **Documentação Automática**: Fornece documentação interativa automática para suas APIs, baseada nos padrões.
* **Baseado em Padrões Abertos**: Totalmente compatível com os padrões abertos para APIs: [[OpenAPI]] (anteriormente conhecido como Swagger) e [[JSON]] Schema.
**:: Referência ::** [FastAPI (tiangolo.com)](https://fastapi.tiangolo.com/)
# Comandos Importantes
Para instalar o FastAPI e o servidor ASGI Uvicorn (recomendado):
```shell
pip install fastapi "uvicorn[standard]"
# Alternativamente, para instalar todas as dependências opcionais:
# pip install "fastapi[all]"
```
Para executar uma aplicação FastAPI (assumindo que seu script principal é `main.py` e a instância da aplicação é `app`):
```shell
uvicorn main:app --reload
```
O flag `--reload` permite que o servidor reinicie automaticamente ao detectar mudanças no código.
# Tutorial
Para um guia completo e detalhado sobre como usar o FastAPI, consulte a documentação oficial:
**:: Referência ::** [Tutorial - User Guide - FastAPI (tiangolo.com)](https://fastapi.tiangolo.com/tutorial/)