Помните, на основном Лёрне вы писали небольшое приложение на Фласке, которое принимало на ход город и показывало температуру в нём с помощью Openweathermap?
На этой неделе вам нужно сделать то же самое, только на FastAPI. Напишите приложение, у которого есть единственный урл /weather/
, который возвращает json с текущей температутой в городе.
Бонусные очки если вы не будете пересматривать видео и не станете смотреть в старый код. Попробуйте решить эту задачу как бы с нуля.
На счёт FastAPI: да, вы с ним не работали, но при базовом использовании он не сильно отличается от знакомого вам Flask, а всё, что нужно для вашего небольшого сервиса, есть в примере на главной странице документации. Впрочем, если вы захотите погрузиться глубже в документацию и ближе познакомиться с фреймворком, я не смогу вас остановить :)
Пара нужных вам ссылок:
- Документация нужного вам метода API Openweathermap. На соседних страницах вы можете прочитать про авторизацию и получить свой ключ АПИ.
- Документация FastAPI. Этот фреймворк поддерживает и синхронный и асинхронный код. Обязательно пишите синхронный. Если видите в примерах async и await – это не то, что вам нужно.
pip install poetry
poetry install
-
Пропишите URL API Openweathermap и токен к нему в файл .env (.env.template), переменные OWP_URL и OWP_API_KEY
uvicorn app.main:app
docker build -t openweather-api .
docker compose up --build
http://0.0.0.0:8000/docs