Blog

Postado em em 21 de junho de 2023

API em Python com FastAPI – Criando Sua Primeira API

API em Python é uma abreviação para “Application Programming Interface” em inglês, que significa Interface de Programação de Aplicativos. 

Em termos simples, é um conjunto de regras e funcionalidades que possibilita que diferentes softwares se comuniquem e interajam entre si de maneira padronizada.

Com o uso de APIs em Python, os desenvolvedores são capazes de criar aplicativos que se integram facilmente com outros sistemas, compartilham dados e oferecem serviços para outros aplicativos.

Saiba mais.

O que é uma API em Python?

API em Python é uma interface de programação de aplicativos desenvolvida utilizando a linguagem de programação Python. Ela garante que diferentes sistemas e programas se comuniquem entre si, a partir de um elemento em comum. 

As APIs em Python são amplamente utilizadas para integrar diferentes componentes de software, acessar serviços externos, realizar automação de tarefas e criar aplicativos web e mobile. 

Elas fornecem uma maneira estruturada e padronizada de interação entre sistemas, algo que facilita o desenvolvimento de soluções robustas e escaláveis.

Qual linguagem usar?

A escolha da linguagem de programação para desenvolver uma API depende de vários fatores, como:

  • a finalidade da API;
  • as necessidades do projeto;
  • as habilidades da equipe de desenvolvimento;
  • e a compatibilidade com as tecnologias existentes. 

Diversas linguagens de programação são comumente usadas para criar APIs, cada uma com suas vantagens e características específicas. No contexto deste artigo, por exemplo, estamos focando em Python; mas poderíamos usar outra, como JavaScript. 

Qual é a função de uma API?

A função de uma API (Interface de Programação de Aplicativos) é permitir a comunicação e interação entre diferentes sistemas, aplicativos e serviços. Ela define um conjunto de regras e protocolos que especificam como os componentes de software devem interagir uns com os outros. 

Uma API atua como um intermediário, ao fornecer métodos, funções e endpoints que possibilitam acessar e utilizar os recursos e funcionalidades de um sistema de forma controlada. 

Por exemplo, se uma aplicação precisa fazer login integrado com redes sociais famosas, como o Instagram, precisa de uma API do Instagram para isso. Assim, é só integrar ao código da aplicação e obter essa funcionalidade. 

Por meio de uma API, torna-se possível enviar solicitações, obter respostas, compartilhar dados e realizar operações específicas. 

Diferença de API X Biblioteca X Framework

API, biblioteca e framework são termos relacionados à programação e até similares, mas possuem significados distintos. 

Uma API em Python você já sabe bem o que é. Agora vamos entender os outros e suas diferenças:

Biblioteca 

Uma biblioteca é um conjunto de código pré-escrito que oferece funções e recursos específicos para facilitar o desenvolvimento de software. 

Ela contém uma série de módulos ou classes que são utilizados em um programa para realizar tarefas específicas, como manipulação de arquivos, processamento de dados, acesso a bancos de dados, entre outros. 

As bibliotecas são geralmente desenvolvidas em uma determinada linguagem de programação e podem ser reutilizadas em diferentes projetos.

São mais simples e correspondem a um conjunto padronizado de códigos, e não de uma parte funcional específica de uma aplicação (como uma API).

Framework 

Um framework é um conjunto estruturado de bibliotecas, padrões e diretrizes que fornecem uma base para o desenvolvimento de software. 

Ele define uma estrutura de trabalho comum que facilita o desenvolvimento de aplicativos, fornecendo um conjunto de funcionalidades e abstrações que são usadas para criar aplicativos de forma mais eficiente. 

É diferente, pois combina diversas funções em uma estrutura maior. 

Em resumo, uma API define como diferentes sistemas devem se comunicar e interagir, uma biblioteca oferece funcionalidades e recursos específicos para serem reutilizados em um programa, e um framework fornece uma estrutura e conjunto de funcionalidades mais abrangentes para facilitar o desenvolvimento de aplicativos. 

Cada um desempenha um papel importante no desenvolvimento de software e é adotado de acordo com as necessidades e requisitos do projeto.

Como Criar API em Python Usando o FastAPI

Você já conhece o FastAPI? Hoje eu quero te mostrar quais são as vantagens do FastAPI, como funciona a lógica dele e claro, vamos criar sua primeira API!

E aí quer aprender como construir uma API em Python utilizando o FastAPI? Então vamos pra aula que eu vou te ensinar!

Criação de API em Python com FastAPI

O FastAPI é um framework, ou seja, é um conjunto de bibliotecas que vai te auxiliar em uma tarefa. Que nesse caso é a criação de API.

OBS: Caso você ainda não saiba o que é uma API, nós temos uma publicação aqui no blog falando sobre esse assunto, então caso queira ler para aprender basta clicar aqui!

Um ponto que nós sempre gostamos de falar aqui antes de começar as aulas é que é muito importante que você sempre leia a documentação, pois é nela que você vai ter todas as informações para utilizar a ferramenta!

Nesse caso você pode clicar aqui para poder acessar a documentação do FastAPI. Lembrando que a documentação vai ter tudo o que você precisa tanto para instalar quanto para usar a ferramenta.

O primeiro passo é fazer a instalação do FastAPI, lembrando que nesse caso nós vamos utilizar o PyCharm para esse projeto.

 Para isso vamos utilizar o código pip install fastapi no terminal do PyCharm. Em seguida vamos utilizar o pip install uvicorn.

Como nesse primeiro momento esse site vai ficar disponível somente no seu computador, nós vamos precisar desse uvicorn.

from fastapi import FastAPI

app = FastAPI()

vendas = {
    1: {"item": "lata", "preco_unitario": 4, "quantidade": 5},
    2: {"item": "garrafa 2L", "preco_unitario": 15, "quantidade": 5},
    3: {"item": "garrafa 750ml", "preco_unitario": 10, "quantidade": 5},
    4: {"item": "lata mini", "preco_unitario": 2, "quantidade": 5},
}

@app.get("/")
def home():
    return {"Vendas": len(vendas)}

@app.get("/vendas/{id_venda}")
def pegar_venda(id_venda: int):
    if id_venda in vendas:
        return vendas[id_venda]
    else:
        return {"Erro": "ID Venda inexistente"}

Esse é o código que nós vamos utilizar para a criação da nossa API, agora nós vamos a explicação desse código para que você entenda como criar a sua API.

Lembrando que para criar sua API você utilizar as duas primeiras linhas de código, que é a importação do framework e depois a chamada do aplicativo, que é a sua API.

Agora para você testar e colocar a API no ar (lembrando que esse “no ar” é no seu computador local).

Aqui é que vamos utilizar o uvicorn. Dentro do terminal você vai colocar o seguinte código: uvicorn + o nome do seu arquivo + : + o nome do seu aplicativo + –reload.

IMPORTANTE: O nome do seu arquivo não pode ter espaço, então quando fizer o download do arquivo renomeie ele antes de fazer essa execução, pois vai dar erro!

Então nesse caso vamos ter o código dessa forma: uvicorn main:app –reload.

A vantagem de colocar esse reload é que qualquer alteração que fizer no seu código e salvá-lo isso já vai ser redirecionado para sua API.

Criar API em Python (1)

Assim que rodar esse código no seu terminal você vai notar algumas mensagens e uma delas é um link, que você vai clicar para verificar sua API.

Criar API em Python (2)

Você vai notar que no site (lembrando que é um site local) você vai se deparar com essa mensagem, que não foi encontrado. Mas se essa mensagem aparecer é porque está tudo ok!

Agora nós vamos a explicação do código para que você entenda a criação dessa API.

Logo após a criação do app nós temos um dicionário com alguns itens, que será o nosso dicionário vendas.

Dentro desse dicionário nós vamos inserir o item, preço e a quantidade. Em seguida nós vamos criar as rotas da nossa API, mas o que são essas rotas?

Você já deve ter reparado quando entra em um site você tem por exemplo: site/home, site/vendas, site/login

Ou seja, são as páginas desse seu site, então nós vamos poder criar essas páginas, que serão essas rotas.

Criar API em Python (3)

Para a nossa home, que seria a nossa página inicial esse é o resultado, pois colocamos para aparecer o tamanho do nosso dicionário, ou seja, nós temos apenas 4 itens.

Criar API em Python (4)

Agora para que você possa visualizar cada um dos itens, vai colocar o site/vendas/id da venda.

Então nesse caso foi o site/venda/1, assim vai retornar as informações do nosso primeiro item!

OBS: Outro ponto bem interessante é que você pode colocar o site/docs que vai abrir uma documentação com as informações desse seu site para te mostrar o resultado e o formato em que os seus dados estão. Dessa forma pode fazer alguns testes da sua API.

Então esse site/venda/id da venda seria para quando o usuário quisesse consumir a informação da nossa API, ou seja, ele vai informar que quer fazer a requisição de uma venda específica e vai ter como retorno as informações de item, preço e quantidade.

Aqui a sua API já está criada, lembrando de novo que todas as informações para criar rotas ou os comandos que você pode colocar lá dentro ou qualquer informação que precisar você pode consultar na documentação.

Então se quiser fazer algumas modificações, acrescentar mais coisas no seu código pode ir à documentação que você vai conseguir fazer esses ajustes!

Conclusão

Nessa aula eu te mostrei a criação de API com FastAPI e te mostrei como criar sua primeiro API no FastAP que é um framework para criação de API.

É um procedimento, como o próprio nome já diz, e você deve ter notado que é bem tranquilo, mas você pode fazer suas adaptações.

E caso você queira fazer o deploy da sua API, que seria coloca-la em um servidor para que outras pessoas possam acessar pode dar uma lida nessa publicação aqui que falamos um pouco sobre isso.

Hashtag Treinamentos

Para acessar outras publicações de Python, clique aqui!


Quer aprender mais sobre Python com um minicurso básico gratuito?

Quer ter acesso a um Minicurso de Finanças no Excel de forma 100% gratuita? Preencha seu e-mail abaixo!