%%file app.py
###
# TWOJ KOD API
###Writing app.py
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ą.
Najpierw utworzymy podstawową aplikację Flask.
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!.
Teraz uruchom API w terminalu, wpisując:
Flask uruchomi serwer lokalnie pod adresem http://127.0.0.1:5000/.
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).
Jeśli wszystko działa poprawnie, zobaczysz komunikat Witaj w moim API!.
Dodajmy nową podstronę mojastrona, która zwróci komunikat To jest moja strona!.
Ponownie uruchom API i wykonaj zapytanie do strony "http://127.0.0.1:5000/mojastrona":
Powinieneś zobaczyć: To jest moja strona!
Zamknij wcześniej uruchomiony serwer (Ctrl+C w terminalu) i uruchom go ponownie bezpośrednio z Jupyter Notebook, korzystając z subprocess.Popen:
Po testach zamknij serwer wykorzystując metodę kill:
Dodajemy nową podstronę /hello, która będzie przyjmować parametr name.
Edytuj app.py, dodając odpowiedni kod
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!"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}}Po wykonaniu tego ćwiczenia studenci będą umieli: