Nagłówki i kody statusu

Wprowadzenie do API w Pythonie

Chris Ramakers

Engineering Manager

Anatomia żądania i odpowiedzi

Przykład komunikatu żądania i odpowiedzi. Żądanie: GET /users/42 z nagłówkami. Odpowiedź: 200 OK z treścią JSON zawierającą dane użytkownika.

Wprowadzenie do API w Pythonie

Linia startowa

Przykład trzech odrębnych części komunikatu żądania lub odpowiedzi z wyróżnioną linią startową

  • Serwer zawsze umieszcza numeryczny kod statusu w komunikacie odpowiedzi
Wprowadzenie do API w Pythonie

Kody statusu

Kategorie kodów statusu

  • 1XX: Odpowiedzi informacyjne
  • 2XX: Odpowiedzi o sukcesie
  • 3XX: Przekierowania
  • 4XX: Błędy klienta
  • 5XX: Błędy serwera

Najczęściej używane kody statusu

  • 200: OK
  • 404: Not Found
  • 500: Internal Server Error
1 Pełna lista kodów odpowiedzi dostępna jest na stronie MDN: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status
Wprowadzenie do API w Pythonie

Nagłówki

Przykład trzech odrębnych części komunikatu żądania lub odpowiedzi z wyróżnionymi nagłówkami

key1: Value 1
key2: Value 2
Wprowadzenie do API w Pythonie

Przykład: negocjacja treści z nagłówkami

Przykład trzech odrębnych części komunikatu żądania lub odpowiedzi z wyróżnionymi nagłówkami

  • Klient dodaje nagłówek accept: application/json do żądania
  • Serwer odpowiada nagłówkiem content-type: application/json
Wprowadzenie do API w Pythonie

Nagłówki w 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'
Wprowadzenie do API w Pythonie

Kody statusu w 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
Wprowadzenie do API w Pythonie

Czas na ćwiczenia!

Wprowadzenie do API w Pythonie

Preparing Video For Download...