3 сентября 2022 г.
Прежде чем перейти к сути приложения, я хочу выяснить, как на самом деле работает этот шаблонный код API. Как работает промежуточное ПО, как передается токенизация (это промежуточное ПО?), как настроить модели и схемы в fastapi и т. д.
Оригинальный шаблонный код можно найти здесь, кстати
Давайте посмотрим, как настроен контроллер для базового маршрута (/home
).
Таким образом, шаблон проектирования кажется
→Используйте декоратор на маршрутизаторе и добавьте зависимости и аутентификацию
→Пусть контроллер сделает все остальное
Вот user.py
Кажется, именно так мидлвары обрабатываются в fastapi через декораторы. Документы, похоже, тоже это показывают. Это сильно отличается от того, как это делается в экспресс
Если я изменю PermissionDependency
на /home
на IsAdmin
вместо AllowAll
, он запросит авторизацию
Аккуратный
Я немного сожалею, что не просмотрел этот материал, прежде чем перейти к пробной версии Aylien API, поскольку срок ее действия истек, но да ладно
Но хорошо, теперь я знаю, что все защищенные маршруты должны иметь этот флаг в промежуточном программном обеспечении:
dependencies=[Depends(PermissionDependency([IsAdmin]))]
На самом деле подождите, это только для модели user
Поэтому, если бы я использовал этот же класс в маршруте здоровья, он вернул бы результат из модели User
, если он правильно аутентифицирован… Я думаю
Ах, мило, глядя на кодовую базу, кажется, что первоначальный создатель уже добавил тесты 4 дня назад, а также некоторые другие полезные функции.
Я как раз собирался изучить жетоны обновления. Я думаю, что внесу свой вклад в этот проект, как только получу хорошее представление о нем, таким образом, первоначальный создатель будет более склонен поддерживать темп.
Я думаю, что код CICD сам по себе будет ценным вкладом
Хорошо, в любом случае, вносим изменения
Прохладный. Я думаю, что это завершение на сегодня
День 1: https://medium.com/@elefun/turning-news-into-data-day-1-1689ffd4a313
День 2: https://medium.com/@elefun/turning-news-into-data-day-2-b98a6ebe3012
День 3: https://medium.com/@elefun/turning-news-into-data-day-3-79307d1be685
День 4: https://medium.com/@elefun/turning-news-into-data-day-4-fa52416ddf0f
День 5: https://medium.com/@elefun/turning-news-into-data-day-5-8b9f97a81174
День 6: https://medium.com/@elefun/turning-news-into-data-day-6-a51b811baece
День 7: https://medium.com/@elefun/turning-news-into-data-day-7-7533fffff82c
День 8: https://medium.com/@elefun/turning-news-into-data-day-8-c1528866bf33
День 9: https://medium.com/@elefun/turning-news-into-data-day-9-cloudrun-deployed-9aeb65085fe6
День 10: https://medium.com/@elefun/turning-news-into-data-day-10-reduce-image-size-bc0b7081fceb