Cabeçalhos e códigos de status

Introdução a APIs em Python

Chris Ramakers

Engineering Manager

Anatomia da requisição e resposta

Exemplo de mensagem de requisição e resposta. Requisição: GET /users/42 com cabeçalhos. Resposta: 200 OK com corpo JSON contendo infos do usuário.

Introdução a APIs em Python

A start-line

Exemplo das três partes de uma mensagem de requisição ou resposta, com a start-line destacada

  • Um servidor sempre inclui um código numérico de status na resposta
Introdução a APIs em Python

Códigos de status

Categorias de códigos de status

  • 1XX: Respostas informativas
  • 2XX: Respostas bem‑sucedidas
  • 3XX: Mensagens de redirecionamento
  • 4XX: Erros do cliente
  • 5XX: Erros do servidor

Códigos usados com frequência

  • 200: OK
  • 404: Not Found
  • 500: Internal Server Error
1 Para a lista completa de códigos de resposta, consulte a página da MDN sobre status-codes em https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
Introdução a APIs em Python

Cabeçalhos

Exemplo das três partes de uma mensagem de requisição ou resposta, com os cabeçalhos destacados

key1: Value 1
key2: Value 2
Introdução a APIs em Python

Exemplo: negociação de conteúdo com cabeçalhos

Exemplo das três partes de uma mensagem de requisição ou resposta, com os cabeçalhos destacados

  • O cliente adiciona o cabeçalho accept: application/json à requisição
  • O servidor responde com o cabeçalho content-type: application/json
Introdução a APIs em Python

Cabeçalhos com requests

# Adicionando cabeçalhos a uma requisição
response = requests.get(
  'https://api.datacamp.com', 
  headers={'accept':'application/json'}
)
# Lendo cabeçalhos da resposta
response.headers['content-type']
'application/json'
response.headers.get('content-type')
'application/json'
Introdução a APIs em Python

Códigos de status com requests

# Acessando o código de status
response = requests.get('https://api.datacamp.com/users/12')

response.status_code == 200
True
# Consultando códigos com requests.codes
response = requests.get('https://api.datacamp.com/this/is/the/wrong/path')

response.status_code == requests.codes.not_found
True
Introdução a APIs em Python

Vamos praticar!

Introdução a APIs em Python

Preparing Video For Download...