Závěrečné myšlenky

Úvod do API v Pythonu

Chris Ramakers

Engineering Manager

Základy API

  • Role API
  • Typy API
  • Komponenty URL
  • Struktura zpráv požadavku a odpovědi
  • HTTP metody

Úvod do API v Pythonu

API v Pythonu

Balíček Requests

import requests

HTTP metody

# Read a resource
requests.get('https://api.my-music.com')
# Create a resource
requests.post('https://api.my-music.com', data={...})
# Update a resource
requests.put('https://api.my-music.com', data={...})
# Delete a resource
requests.delete('https://api.my-music.com')

Parametry URL

query_params = {'artist': 'Deep Purple'}
requests.get('http://api.my-music.com', params=query_params)

Hlavičky

headers = {'accept': 'application/json'}
response = requests.get('http://api.my-music.com', headers=headers)
print(response.headers.get('content-type'))

Stavové kódy

response = requests.get('http://api.my-music.com')
print(response.status_code)
Úvod do API v Pythonu

Pokročilá témata

  • Autentizace
    • Základní autentizace
      headers = {'Authorization':'Basic am9obkBleGF...'}
      
    • Autentizace pomocí API klíče/tokenu
      headers = {'Authorization': 'Bearer faaa1c9f4...'}
      
  • Strukturovaná data
    • Požadavek na data ve formátu JSON
      requests.get('https://api.my-music.com', headers={'accept': 'application/json'})
      
    • Odesílání dat ve formátu JSON
      playlists = [{"Name":"My favorite songs"}, {"Name":"Road Trip"}]
      requests.post('https://api.my-music.com/playlists/', json=playlists)
      
Úvod do API v Pythonu

Zpracování chyb

  • Typy chyb
    • Chyby připojení
    • HTTP chyby
      • 4XX Chyby klienta
      • 5XX Chyby serveru
  • Zpracování chyb pomocí stavových kódů
    • response.status_code
  • Zpracování chyb pomocí výjimek
    • raise_for_error()
import requests
from requests.exceptions import ConnectionError, HTTPError

try:
    response = requests.get("http://api.music-catalog.com/albums") 
    response.raise_for_status()

except ConnectionError as conn_err: 
    print(f'Connection Error! {conn_err}.')

except HTTPError as http_err:
    print(f'HTTP error occurred: {http_err}')
Úvod do API v Pythonu

Gratulujeme!

Úvod do API v Pythonu

Preparing Video For Download...