Classe FastAPI e Manipulação de Requisições

O núcleo de uma aplicação FastAPI está no uso da classe FastAPI, disponível no pacote fastapi. Essa classe representa a aplicação FastAPI e é derivada de starlette.applications.Starlette. O Starlette é um framework ASGI leve para criação de serviços web assíncronos em Python. O FastAPI atua como uma camada sobre o Starlette, ampliando suas funcionalidades. Isso se aplica não apenas à classe FastAPI, mas também a diversas outras classes e recursos do framework, que frequentemente utilizam as capacidades do Starlette.

Instanciando a Classe FastAPI

O construtor da classe FastAPI oferece cerca de 30 parâmetros para configurar a aplicação conforme necessidades específicas. No entanto, é possível criar uma instância funcional utilizando apenas os valores padrão:

from fastapi import FastAPI

app = FastAPI()

Essa abordagem é suficiente para configurar e executar uma aplicação básica.

Métodos do FastAPI

Um dos principais atrativos do FastAPI é a facilidade e rapidez com que permite criar serviços web no estilo REST. Na arquitetura REST, diferentes métodos HTTP são utilizados para interagir com o servidor, onde cada método corresponde a uma ação específica:

  • GET: Obter dados.

  • POST: Adicionar dados.

  • PUT: Atualizar dados.

  • DELETE: Remover dados.

Além desses, o FastAPI suporta outros métodos HTTP, como:

  • OPTIONS: Obter informações sobre a comunicação com o servidor.

  • HEAD: Obter apenas os cabeçalhos da resposta.

  • PATCH: Atualizar parcialmente um recurso.

  • TRACE: Realizar um teste de loopback.

Na classe FastAPI, esses métodos estão disponíveis como funções que levam os mesmos nomes:

get()
post()
put()
delete()
options()
head()
patch()
trace()

Essas funções são usadas para definir rotas que manipulam as requisições correspondentes. Por exemplo, o método get() é usado para lidar com requisições HTTP do tipo GET.

Uso de Métodos como Decoradores

Essas funções não processam diretamente as requisições, mas são utilizadas como decoradores para funções que realizam o processamento. Veja o exemplo abaixo:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def root():
    return {"message": "Hello www.programicio.com!"}

No exemplo acima, o método app.get() é usado como decorador para a função root(). O símbolo @ indica que a função está sendo decorada. Esse decorador define que a função root() será responsável por manipular requisições feitas ao caminho / (a raiz da aplicação web). Assim, ao acessar o endereço http://127.0.0.1:8000/, a função será executada.

A função root() retorna um dicionário Python, que é automaticamente serializado para o formato JSON na resposta ao cliente. Além disso, o cabeçalho HTTP Content-Type da resposta é configurado como application/json.

Exemplo de envio de respostas para o cliente com FastAPI

O mesmo conceito pode ser aplicado para definir rotas adicionais na aplicação. Veja o exemplo a seguir:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
def root():
    return {"message": "Hello www.programicio.com!"}

@app.get("/about")
def about():
    return {"message": "Sobre o site"}

Nesse caso, adicionamos uma segunda função chamada about(), que manipula requisições feitas ao caminho /about. Ao acessar o endereço http://127.0.0.1:8000/about, o servidor retornará a seguinte resposta:

Exemplo de manipulação de rotas com FastAPI
Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com