Pular para o conteúdo
Bruno Dórea
Todos os posts

5 mins de leitura


O que é FastAPI?


Uma FastAPI é um framework moderno para construir APIs em Python, permitindo a criação de servidores web de alto desempenho. Ele otimiza todo o ciclo de desenvolvimento com tipagem estática e validação automática de dados, facilitando a implementação rápida e escalável de APIs.

Mas, o que é uma API?

Uma API, ou Interface de Programação de Aplicações, é um conjunto de regras e padrões que permite que diferentes softwares se comuniquem entre si. Ela define os métodos e formatos de dados que os aplicativos podem usar para requisitar e enviar informações um ao outro. Em termos mais simples, uma API é como uma ponte que permite que diferentes sistemas se conectem e interajam uns com os outros de forma padronizada e controlada. Isso possibilita a integração de sistemas e o compartilhamento de dados entre diferentes plataformas, aplicativos e serviços.

Um serviço para gerenciar tudo?

Um serviço para gerenciar tudo, também conhecido como serviço de orquestração, é uma abordagem que busca centralizar e coordenar diferentes processos e recursos de um sistema em um único ponto de controle. Isso é especialmente útil em arquiteturas distribuídas, onde múltiplos componentes precisam ser gerenciados e coordenados de forma eficiente. Com um serviço de orquestração, é possível simplificar a administração e o monitoramento do sistema, garantindo uma maior eficiência e confiabilidade operacional.

Como uma API se integra a um WebServer?

Uma API se integra a um servidor web através de rotas e endpoints. As rotas definem os URLs que a API irá responder e os métodos HTTP associados a esses URLs. Quando uma solicitação é feita a um desses URLs, o servidor web encaminha a solicitação para a API, que então processa a solicitação e retorna uma resposta ao cliente.

Qual o ciclo de desenvolvimento de uma API?

O ciclo de desenvolvimento de uma API geralmente envolve as seguintes etapas:

  1. Planejamento e Design: Definir os requisitos da API, incluindo os endpoints, métodos HTTP, parâmetros e formatos de dados.

  2. Implementação: Escrever o código da API, incluindo a lógica de negócios, validação de dados e manipulação de erros.

  3. Testes: Testar a API para garantir que ela funcione conforme o esperado, incluindo testes de unidade, integração e aceitação.

  4. Documentação: Criar documentação para a API, descrevendo os endpoints, parâmetros e exemplos de uso.

  5. Implantação: Implantação da API em um ambiente de produção, garantindo que esteja acessível aos usuários finais.

  6. Monitoramento e Manutenção: Monitorar o desempenho da API em produção e fazer ajustes conforme necessário. Realizar manutenção regular para corrigir bugs e adicionar novos recursos.

Frameworks podem nos auxiliar

Frameworks podem nos auxiliar fornecendo estruturas e ferramentas predefinidas para facilitar o desenvolvimento de aplicações. Eles geralmente incluem funcionalidades comuns, como roteamento, validação de dados, autenticação e manipulação de solicitações HTTP, permitindo que os desenvolvedores se concentrem mais na lógica de negócios da aplicação em vez de lidar com tarefas repetitivas e de baixo nível.

API vs FastAPI

Em comparação com a criação tradicional de uma API, FastAPI oferece uma sintaxe mais intuitiva e simplificada, tornando o processo de desenvolvimento mais rápido e eficiente. Aqui estão dois exemplos comparando a criação de uma API simples com FastAPI:

Exemplo 1 - Criação de uma rota que retorna "Hello, World!"

  • API tradicional

    from flask import Flask
    app = Flask(__name__)
     
    @app.route('/')
    def hello_world():
        return 'Hello, World!'
     
    if __name__ == '__main__':
        app.run()
  • Fast API

    from fastapi import FastAPI
    app = FastAPI()
     
    @app.get('/')
    def hello_world():
      return {'message': 'Hello, World!'}

Exemplo 2 - Criação de uma rota que calcula a soma de dois números

  • API tradicional

    from flask import Flask, request
    app = Flask(__name__)
     
    @app.route('/sum')
    def sum_numbers():
        num1 = int(request.args.get('num1'))
        num2 = int(request.args.get('num2'))
        return str(num1 + num2)
     
    if __name__ == '__main__':
      app.run()
  • Fast API

    from fastapi import FastAPI
    app = FastAPI()
     
    @app.get('/sum')
    def sum_numbers(num1: int, num2: int):
        return {'result': num1 + num2}

Como você pode ver, FastAPI simplifica significativamente a criação de APIs, proporcionando uma experiência de desenvolvimento mais fluida e produtiva.

FastAPI com IA

Utilizar FastAPI permite tirar proveito das bibliotecas de IA em Python de maneira eficiente, segura e rápida. A combinação da robustez e performance de FastAPl com o vasto ecossistema de IA de Python, cria uma plataforma poderosa para desenvolver e implementar soluções de inteligência artificial de alto impacto.

Ferramentas

  • Uvicorn (servidor web)
  • pytest (ferramenta de teste)
  • Loguru (ferramenta de log)
  • Swagger (documentação)
  • sqlAlchemy (ferramenta de orm)
  • Pydantic (validação de dados)
  • elk (monitoração)
  • poetry (gerenciamento de dependências)