Tworzenie API we Flasku – Wprowadzenie

W tym ćwiczeniu nauczysz się, jak stworzyć proste API w Flasku, uruchomić je, wysyłać do niego zapytania oraz wykorzystać model decyzyjny w oparciu o podstawową regułę logiczną.

1️⃣ Tworzenie podstawowego API

Najpierw utworzymy podstawową aplikację Flask.

Zapisanie kodu API do pliku

W Jupyter Notebooku użyj magicznej komendy %%file, aby zapisać kod podstawowej aplikacji flask do pliku app.py: Kod znajdziesz na cw1 Jako tekst do wyświetlenie strony głównej użyj Witaj w moim API!.

%%file app.py
###
# TWOJ KOD API 
###
Writing app.py

Teraz uruchom API w terminalu, wpisując:

python app.py

Flask uruchomi serwer lokalnie pod adresem http://127.0.0.1:5000/.

Sprawdzenie działania API

W Jupyter Notebooku wykonaj zapytanie GET do strony głównej. Na podstawie pola status_code napisz wyrażenie warunkowe które dla status_code 200 wyświetli zawartość odpowiedzi (z pola content).

import requests
response = pass # TWOJ KOD

Jeśli wszystko działa poprawnie, zobaczysz komunikat Witaj w moim API!.


2️⃣ Dodanie nowej podstrony

Dodajmy nową podstronę mojastrona, która zwróci komunikat To jest moja strona!.

%%file app.py
###
# TWOJ KOD API 
###

Ponownie uruchom API i wykonaj zapytanie do strony "http://127.0.0.1:5000/mojastrona":

response = pass # TWOJ KOD

Powinieneś zobaczyć: To jest moja strona!


3️⃣ Automatyczne uruchamianie serwera z Jupyter Notebook

Zamknij wcześniej uruchomiony serwer (Ctrl+C w terminalu) i uruchom go ponownie bezpośrednio z Jupyter Notebook, korzystając z subprocess.Popen:

import subprocess
# TWOJ KOD 
server = pass

Po testach zamknij serwer wykorzystując metodę kill:

# TWOJ KOD

4️⃣ Obsługa parametrów w adresie URL

Dodajemy nową podstronę /hello, która będzie przyjmować parametr name.

Edytuj app.py, dodając odpowiedni kod

%%file app.py
###
# TWOJ KOD API 
###

Uruchom serwer i sprawdź działanie API:

res1 = requests.get("http://127.0.0.1:5000/hello")
print(res1.content)  # Powinno zwrócić "Hello!"

res2 = requests.get("http://127.0.0.1:5000/hello?name=Sebastian")
print(res2.content)  # Powinno zwrócić "Hello Sebastian!"

5️⃣ Tworzenie API z prostym modelem ML

Stworzymy nową podstronę /api/v1.0/predict, która przyjmuje dwie liczby i zwraca wynik reguły decyzyjnej: - Jeśli suma dwóch liczb jest większa niż 5.8, zwraca 1. - W przeciwnym razie zwraca 0.

Sprawdź działanie API:

res = requests.get("http://127.0.0.1:5000/api/v1.0/predict?num1=3&num2=4")
print(res.json())  # Powinno zwrócić {"prediction": 1, "features": {"num1": 3.0, "num2": 4.0}}

Podsumowanie

Po wykonaniu tego ćwiczenia studenci będą umieli:

  • ✅ Tworzyć podstawowe API w Flasku.
  • ✅ Dodawać podstrony i obsługiwać parametry URL.
  • ✅ Wysyłać zapytania GET i analizować odpowiedzi.
  • ✅ Automatycznie uruchamiać serwer z Jupyter Notebook.
  • ✅ Implementować prosty model decyzyjny w API.