Заголовки и коды состояния

Введение в API на Python

Chris Ramakers

Engineering Manager

Структура запроса и ответного сообщения

Пример запроса и ответного сообщения. Запрос: GET /users/42 с заголовками. Ответ: 200 OK с телом JSON, содержащим информацию о пользователе.

Введение в API на Python

Стартовая строка

Пример трёх частей запроса или ответного сообщения с выделенной стартовой строкой

  • Сервер всегда включает числовой код состояния в ответное сообщение
Введение в API на Python

Коды состояния

Категории кодов состояния

  • 1XX: информационные ответы
  • 2XX: успешные ответы
  • 3XX: перенаправления
  • 4XX: ошибки клиента
  • 5XX: ошибки сервера

Часто используемые коды состояния

  • 200: OK
  • 404: Not Found
  • 500: Internal Server Error
1 Полный список кодов ответов можно найти на странице MDN, посвящённой кодам состояния: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
Введение в API на Python

Заголовки

Пример трёх частей запроса или ответного сообщения с выделенными заголовками

key1: Value 1
key2: Value 2
Введение в API на Python

Пример: согласование контента с помощью заголовков

Пример трёх частей запроса или ответного сообщения с выделенными заголовками

  • Клиент добавляет заголовок accept: application/json к запросу
  • Сервер отвечает с заголовком content-type: application/json
Введение в API на Python

Заголовки в библиотеке requests

# Adding headers to a request
response = requests.get(
  'https://api.datacamp.com', 
  headers={'accept':'application/json'}
)
# Reading response headers
response.headers['content-type']
'application/json'
response.headers.get('content-type')
'application/json'
Введение в API на Python

Коды состояния в библиотеке requests

# Accessing the status code
response = requests.get('https://api.datacamp.com/users/12')

response.status_code == 200
True
# Looking up status codes using requests.codes
response = requests.get('https://api.datacamp.com/this/is/the/wrong/path')

response.status_code == requests.codes.not_found
True
Введение в API на Python

Давайте потренируемся!

Введение в API на Python

Preparing Video For Download...