Apidog

All-in-one Collaborative API Development Platform

Design de API

Documentação de API

Depuração de API

Mock de API

Testes Automatizados de API

Inscreva-se gratuitamente
Home / Tutoriais / Como Passar Parâmetros no FastAPI

Como Passar Parâmetros no FastAPI

Aprenda como passar parâmetros no FastAPI com este guia abrangente. Descubra os diferentes tipos de parâmetros, sua validação e recursos avançados para otimizar seu processo de desenvolvimento de API. Perfeito para iniciantes e desenvolvedores experientes.

Se você já mergulhou no mundo do desenvolvimento web, sabe como é crucial lidar com parâmetros de forma eficaz. Seja você um desenvolvedor experiente ou apenas começando, entender como passar parâmetros no FastAPI pode aumentar significativamente sua eficiência e produtividade.

💡
Mas antes de entrarmos nos detalhes, aqui está uma pequena dica para você: Baixe o Apidog gratuitamente! É uma ferramenta fantástica que simplifica os testes e a depuração de APIs, tornando seu processo de desenvolvimento mais suave e agradável. Acredite em mim, uma vez que você comece a usar o Apidog, você não vai querer voltar!
button

Certo, com isso fora do caminho, vamos mergulhar no fascinante mundo do FastAPI e da passagem de parâmetros.

O que é FastAPI?

FastAPI é um framework web moderno e rápido (de alto desempenho) para construir APIs com Python 3.7+ baseado em dicas de tipo padrão do Python. Ele é projetado para ser fácil de usar e aprender, enquanto também fornece a velocidade e o desempenho da programação assíncrona. FastAPI é perfeito para construir aplicações de alto desempenho e microsserviços. Também se integra perfeitamente com ferramentas e bibliotecas modernas.

Por que FastAPI?

FastAPI possui várias vantagens que o tornam uma das melhores escolhas entre desenvolvedores:

  1. Velocidade: É rápido. De fato, é um dos frameworks web em Python mais rápidos disponíveis.
  2. Facilidade de Uso: É projetado para ser intuitivo e direto.
  3. Documentação: Geração automática de documentação interativa da API usando OpenAPI e JSON Schema.
  4. Validação: Fornece validação automática dos dados da solicitação.
  5. Apoio Assíncrono: Suporte total para programação assíncrona.
Fastapi

Começando com FastAPI

Antes de mergulharmos na passagem de parâmetros, vamos garantir que você tenha o FastAPI e o Uvicorn (um servidor ASGI) instalados. Você pode instalá-los usando o pip:

pip install fastapi uvicorn

Agora, vamos criar uma aplicação simples do FastAPI para começar:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def read_root():
    return {"Hello": "World"}

Você pode executar esta aplicação usando o Uvicorn:

uvicorn main:app --reload

Abra seu navegador e navegue até http://127.0.0.1:8000, e você deve ver {"Hello": "World"}.

Passando Parâmetros no FastAPI

No FastAPI, você pode passar parâmetros de várias maneiras. Vamos explorar cada método em detalhes.

Parâmetros de Path

Os parâmetros de path são utilizados para capturar partes variáveis do caminho da URL. Por exemplo, se você quiser capturar o ID de um usuário da URL, pode fazer assim:

@app.get("/users/{user_id}")
def read_user(user_id: int):
    return {"user_id": user_id}

Neste exemplo, user_id é um parâmetro de path. Quando você visitar http://127.0.0.1:8000/users/1, o parâmetro user_id será capturado e passado para a função read_user.

Sugestão de Tipo

Note como usamos a sugestão de tipo int para user_id. O FastAPI usa essas sugestões de tipo para validar os parâmetros de entrada. Se você passar uma string em vez de um inteiro, o FastAPI retornará um código de status 422 indicando um erro de validação.

Parâmetros de Consulta

Os parâmetros de consulta são usados para passar parâmetros opcionais na URL. Eles aparecem após o ? na URL. Por exemplo:

@app.get("/items/")
def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}

Aqui, item_id é um parâmetro de consulta obrigatório, enquanto q é opcional. Você pode acessar este endpoint visitando http://127.0.0.1:8000/items/?item_id=1&q=search.

Parâmetros do Corpo da Solicitação

Os parâmetros do corpo da solicitação são usados para passar dados JSON para o endpoint da API. Você pode definir um modelo Pydantic para validar os dados JSON recebidos. Aqui está um exemplo:

from pydantic import BaseModel

class Item(BaseModel):
    name: str
    description: str = None
    price: float
    tax: float = None

@app.post("/items/")
def create_item(item: Item):
    return item

Neste caso, a função create_item espera um objeto JSON que corresponda ao modelo Item. O FastAPI irá automaticamente validar os dados JSON recebidos e retornará um código de status 422 se os dados forem inválidos.

Parâmetros de Cabeçalho

Os parâmetros de cabeçalho podem ser acessados usando a classe Header do fastapi. Por exemplo:

from fastapi import Header

@app.get("/items/")
def read_item(user_agent: str = Header(None)):
    return {"User-Agent": user_agent}

Esta função irá capturar o cabeçalho User-Agent da solicitação.

Parâmetros de Formulário

Os parâmetros de formulário são usados para lidar com dados de formulários na solicitação. Você pode usar a classe Form para capturar os dados do formulário. Aqui está um exemplo:

from fastapi import Form

@app.post("/login/")
def login(username: str = Form(...), password: str = Form(...)):
    return {"username": username}

Neste caso, a função login espera dados de formulário com campos username e password.

Parâmetros de Arquivo

Os parâmetros de arquivo permitem que você trate o upload de arquivos. Você pode usar a classe File do fastapi para capturar os dados do arquivo. Aqui está um exemplo:

from fastapi import File, UploadFile

@app.post("/uploadfile/")
async def create_upload_file(file: UploadFile = File(...)):
    return {"filename": file.filename}

Neste exemplo, a função create_upload_file espera que um arquivo seja enviado. O FastAPI irá gerenciar o upload do arquivo e fornecer os detalhes do arquivo à função.

Injeção de Dependência

O FastAPI também suporta injeção de dependência, permitindo que você defina componentes reutilizáveis que podem ser injetados em suas funções. Aqui está um exemplo:

from fastapi import Depends

def get_token_header():
    return {"Authorization": "Bearer my_token"}

@app.get("/items/")
def read_item(token: dict = Depends(get_token_header)):
    return token

Neste caso, a função read_item depende da função get_token_header, que fornece o cabeçalho do token.

Combinando Parâmetros

Você pode combinar diferentes tipos de parâmetros em um único endpoint. Aqui está um exemplo que usa parâmetros de path, consulta e corpo:

@app.put("/items/{item_id}")
def update_item(
    item_id: int,
    q: str = None,
    item: Item = Body(...)
):
    return {"item_id": item_id, "q": q, "item": item}

Esta função espera um parâmetro de path (item_id), um parâmetro de consulta (q) e um parâmetro de corpo (item).

Tratando Validação de Parâmetros

O FastAPI usa o Pydantic para validação de dados, que fornece um rico conjunto de recursos para definir e validar modelos de dados. Você pode usar o Pydantic para impor restrições em seus parâmetros. Por exemplo:

from pydantic import BaseModel, Field

class Item(BaseModel):
    name: str
    description: str = Field(None, max_length=300)
    price: float = Field(..., gt=0)
    tax: float = None

@app.post("/items/")
def create_item(item: Item):
    return item

Neste caso, o campo description tem uma restrição de comprimento máximo, e o campo price deve ser maior que 0.

Recursos Avançados de Parâmetros

O FastAPI fornece vários recursos avançados para lidar com parâmetros, incluindo:

  • Aliases: Você pode usar aliases para seus parâmetros.
  • Modelos Aninhados: Você pode usar modelos Pydantic aninhados para estruturas de dados complexas.
  • Valores Padrão: Você pode definir valores padrão para seus parâmetros.
  • Expressões Regulares: Você pode usar expressões regulares para validar parâmetros.

Usando Aliases

Você pode definir aliases para seus parâmetros usando a classe Field do Pydantic. Por exemplo:

class Item(BaseModel):
    name: str = Field(..., alias="itemName")
    description: str = None

@app.post("/items/")
def create_item(item: Item):
    return item

Neste caso, o campo name será chamado como itemName.

Modelos Aninhados

Você pode usar modelos Pydantic aninhados para lidar com estruturas de dados complexas. Por exemplo:

class SubItem(BaseModel):
    name: str
    description: str = None

class Item(BaseModel):
    name: str
    description: str = None
    sub_item: SubItem

@app.post("/items/")
def create_item(item: Item):
    return item

Neste caso, o modelo Item contém um modelo aninhado SubItem.

Valores Padrão

Você pode definir valores padrão para seus parâmetros. Por exemplo:

class Item(BaseModel):
    name: str
    description: str = None
    price: float
    tax: float = 10.0

@app.post("/items/")
def create_item(item: Item):
    return item

Neste caso, o campo tax tem um valor padrão de 10.0.

Expressões Regulares

Você pode usar expressões regulares para validar seus parâmetros. Por exemplo:

from pydantic import Field

class Item(BaseModel):
    name: str
    description: str = None
    price: float
    tax: float = None
    code: str = Field(..., regex="^[A-Z0-9]+$")

@app.post("/items/")
def create_item(item: Item):
    return item

Neste caso, o campo code

deve corresponder à expressão regular ^[A-Z0-9]+$.

Usando Apidog com FastAPI para Passar Parâmetros

Integrar Apidog em seu processo de desenvolvimento FastAPI pode aumentar significativamente sua produtividade e agilizar seu fluxo de trabalho de testes de API. Apidog é uma ferramenta poderosa que fornece uma interface amigável para testar e depurar suas APIs, facilitando o gerenciamento e a passagem de parâmetros de forma eficaz.

button

Simplificando o Gerenciamento de Parâmetros com Apidog

Ao trabalhar com FastAPI, passar parâmetros corretamente é crucial para a funcionalidade de seus endpoints. Apidog simplifica esse processo, fornecendo uma plataforma intuitiva onde você pode criar e gerenciar visualmente suas solicitações de API. Veja como o Apidog pode ajudar você no gerenciamento de parâmetros:

Apidog

Documentação Interativa: Apidog gera automaticamente documentação interativa da API com base em seu código FastAPI. Essa documentação inclui todos os parâmetros que seus endpoints aceitam, facilitando a compreensão e os testes.

Teste de Parâmetros: Você pode usar o Apidog para testar diferentes tipos de parâmetros, como parâmetros de path, parâmetros de consulta, parâmetros do corpo da solicitação e mais. Ele permite que você insira e modifique esses parâmetros dinamicamente, garantindo que seus endpoints do FastAPI os manipulem corretamente.

Feedback de Validação: Apidog fornece feedback em tempo real sobre a validação de parâmetros. Se você passar parâmetros inválidos, ele destaca os erros e mostra mensagens detalhadas, ajudando você a identificar e corrigir rapidamente problemas.

Simulando Cenários do Mundo Real: Com o Apidog, você pode simular vários cenários do mundo real passando diferentes conjuntos de parâmetros. Isso é particularmente útil para testar casos extremos e garantir que sua aplicação FastAPI lide com todas as possíveis entradas de forma adequada.

Exemplo: Testando Parâmetros de Path e Consulta com Apidog

Vamos olhar para um exemplo de como você pode usar o Apidog para testar parâmetros de path e consulta em um endpoint FastAPI.

Suponha que você tenha o seguinte endpoint FastAPI:

from fastapi import FastAPI

app = FastAPI()

@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
    return {"item_id": item_id, "q": q}

Para testar este endpoint com Apidog:

Criar uma Nova Solicitação: Abra o Apidog e crie uma nova solicitação para o endpoint GET /items/{item_id}.

Especificar Parâmetros de Path e adicionar Parâmetros de Consulta: Digite um valor para o parâmetro de path item_id. Por exemplo, você pode usar 123. Em seguida, adicione um parâmetro de consulta q com um valor, como search_term.

Envie a solicitação e observe a resposta. O Apidog exibirá os dados JSON retornados, mostrando como os parâmetros foram manipulado pelo FastAPI.

Aprimorando Seu Fluxo de Trabalho

Ao incorporar o Apidog em seu fluxo de trabalho de desenvolvimento FastAPI, você pode garantir que seu gerenciamento de parâmetros seja robusto e sem erros. A integração perfeita do Apidog com os recursos de validação de parâmetros do FastAPI torna-o uma ferramenta inestimável tanto para desenvolvimento quanto para testes.

Ao integrar o Apidog em seu desenvolvimento FastAPI, você pode agilizar o processo de passagem e teste de parâmetros, garantindo que seus endpoints de API sejam robustos e confiáveis.

Conclusão

Passar parâmetros no FastAPI é muito fácil, graças ao seu design intuitivo e robustos recursos de validação. Quer você esteja lidando com parâmetros de path, parâmetros de consulta ou dados JSON complexos, o FastAPI tem tudo o que você precisa.

Lembre-se, o desenvolvimento eficiente de APIs começa com as ferramentas certas. Baixe o Apidog gratuitamente para agilizar seu processo de testes e depuração de API. É um divisor de águas para desenvolvedores que trabalham com APIs!

FastAPI é um framework poderoso que pode aumentar significativamente sua produtividade e o desempenho de suas aplicações. Com sua interface fácil de usar e recursos abrangentes de validação, você pode se concentrar em construir ótimas aplicações sem se preocupar com a infraestrutura subjacente.

Feliz codificação!

button

Junte-se à Newsletter da Apidog

Inscreva-se para ficar atualizado e receber os últimos pontos de vista a qualquer momento.