Classe FastAPI e Manipulação de Requisições
O núcleo de uma aplicação FastAPI está no uso da classe FastAPI
fastapi
starlette.applications.Starlette
FastAPI
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:
: Obter dados.GET
: Adicionar dados.POST
: Atualizar dados.PUT
: Remover dados.DELETE
Além desses, o FastAPI suporta outros métodos HTTP, como:
: Obter informações sobre a comunicação com o servidor.OPTIONS
: Obter apenas os cabeçalhos da resposta.HEAD
: Atualizar parcialmente um recurso.PATCH
: Realizar um teste de loopback.TRACE
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()
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()
root()
@
root()
/
http://127.0.0.1:8000/
A função root()
Content-Type
application/json
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()
/about
http://127.0.0.1:8000/about