Anatomia básica de uma requisição de API

Introdução a APIs em Python

Chris Ramakers

Engineering Manager

O que são URLs?

  • URL = Localizador Uniforme de Recursos
  • O endereço estruturado de um recurso da API
  • Personalize a URL para interagir com recursos específicos da API
http://350.5th-ave.com/unit/243
Introdução a APIs em Python

Dissecando a URL

Um diagrama mostrando partes de uma URL: Protocolo (http://), Domínio (350.5th-ave.com), Porta (:80), Caminho (/unit/243) e Query (?floor=77).

  • Protocolo = o meio de transporte
  • Domínio = o endereço do prédio
  • Porta = o portão/porta de entrada
  • Caminho = a sala específica no prédio
  • Query = instruções adicionais
Introdução a APIs em Python

Adicionando query params com requests

# Acrescente o parâmetro de query à string da URL
response = requests.get('http://350.5th-ave.com/unit/243?floor=77&elevator=True')
print(response.url)
http://350.5th-ave.com/unit/243?floor=77&elevator=True
  • Use o argumento params para adicionar parâmetros de query
# Criar dicionário
query_params = {'floor': 77, 'elevator': True}
# Passe o dicionário usando o argumento `params`
response = requests.get('http://350.5th-ave.com/unit/243', params=query_params)
print(response.url)
http://350.5th-ave.com/unit/243?floor=77&elevator=True
Introdução a APIs em Python

Verbos HTTP

  • Destino: Unidade 243 do prédio 350 5th Ave
  • URL: http://350.5th-ave.com/unit/243

Ações

Verbo Ação Descrição
GET Ler Ver o conteúdo da caixa de correio
POST Criar Deixar um novo pacote na caixa
PUT Atualizar Trocar todos os pacotes por um novo
DELETE Excluir Remover todos os pacotes da caixa
1 Existem 9 verbos HTTP no total, mas para APIs REST simples só estes 4 importam
Introdução a APIs em Python

Enviando dados com POST e PUT

# GET = Obter um recurso
response = requests.get('http://350.5th-ave.com/unit/243')

# POST = Criar um recurso response = requests.post('http://350.5th-ave.com/unit/243', data={"key": "value"}) # PUT = Atualizar um recurso existente response = requests.put('http://350.5th-ave.com/unit/243', data={"key": "value"})
# DELETE = Remover um recurso response = requests.delete('http://350.5th-ave.com/unit/243')
  • Cada verbo tem seu próprio método no pacote requests
  • Use o argumento data para enviar dados em uma requisição POST ou PUT.
Introdução a APIs em Python

Vamos praticar!

Introdução a APIs em Python

Preparing Video For Download...