API 101: o que é uma API

Publicado em · 3 min de leitura

Uma Interface de Programação de Aplicações (API) é um conjunto de serviços, ferramentas, funções e protocolos implementados em um software, disponibilizados a outros sistemas por meio de um contrato. Sua documentação define esse contrato e como enviar solicitações de forma estruturada, determinando como a aplicação responderá. As APIs abstraem a complexidade do sistema, simplificando a interação entre diferentes softwares e permitindo que aplicativos se comuniquem de forma eficiente e padronizada.

Tipos de conexão

Um cliente que deseja acessar os recursos fornecidos por uma API envia uma solicitação para um endpoint, seguindo o formato definido na documentação da API. Após receber a solicitação, a API processa as informações e retorna os dados solicitados ao cliente no formato estabelecido no contrato.

Alguns formatos de conexão:

Web client e servidor:- Comunicação entre um cliente e um servidor web;

REST (Representational State Transfer):- Comunicação baseada nos padrões HTTP;

Remote Procedure Call (RPC):- Permite que um software solicite recursos localizados em outra máquina na rede;

Aplicação e recurso local:- Comunicação entre diferentes partes de uma mesma aplicação ou sistema;

Diferença entre REST e RESTful

Embora sejam às vezes mencionados como a mesma coisa sem causar problemas, há uma distinção entre os dois termos. REST é uma arquitetura que define um conjunto de princípios para criar serviços web, enquanto RESTful refere-se à implementação desses princípios. Enquanto REST define os princípios gerais, como o uso dos métodos HTTP, RESTful se refere à implementação desses princípios seguindo os critérios estabelecidos pelo REST.

Como uma API funciona

Você pode interagir com APIs fazendo requisições a ela, um exemplo de código em Python usando a biblioteca requests com uma API fantasiosa com os dados do jogo Dark Souls.

import requests
# URL da API e requisição GET
url = "https://darksoulsbossesapi.com/api/bosses"
response = requests.get(url)

# Verificando se a requisição foi bem-sucedida (código 200)
if response.status_code == 200:
    # Extraindo os dados da resposta
    bosses_data = response.json()
    # Imprimindo os nomes dos chefes de Dark Souls
    print("Lista de chefes de Dark Souls:")
    for boss in bosses_data:
        print(boss['name'])
else:
    print("Erro ao acessar a API:", response.status_code)

Esse exemplo poderia retornar um JSON como:

[
 {
 "id": 1,
 "name": "Asylum Demon",
 "description": "The first boss of the game."
 },
 {
 "id": 2,
 "name": "Bell Gargoyles",
 "description": "A pair of gargoyles that guard the bell in the Undead Parish."
 },
 {
 "id": 3,
 "name": "Capra Demon",
 "description": "A boss found in the Lower Undead Burg."
 },
 …
]

Considerações sobre desenvolvimento de APIs

Desenvolver uma API envolve considerar o que ela vai abstrair e a lógica que será utilizada em suas implementações e chamadas. Uma API bem projetada deve fornecer acesso controlado a um sistema por meio de endpoints definidos no contrato, garantindo segurança e integridade dos dados. Ela deve ser independente do sistema subjacente, ou seja, deve permanecer funcional e consistente mesmo que o sistema que ela suporta sofra alterações. Uma API pode ser simples ou complexa, nunca confusa.

#python#apis