Сегодня мы реализуем Fastapi через HTTPS с помощью MKCERT и настроить наш собственный орган сертификата (CA) на нашем localhost.
Примечание. Поскольку это самозазнаваемый сертификат, вы можете получить предупреждение перед доступом к вашему API в зависимости от того, какой браузер вы используете.
Мы начнем с кодом сразу Так что, если ваш босс сказал вам, «Cool, получите это бегать через HTTPS на EOD», вы находитесь в нужном месте.
- Откройте CMD и сделайте каталог для нашего приложения.
-> mkdir fastapi-https -> cd fastapi-https
- Создайте и активируйте виртуальную среду для вашего проекта и установите Fastapi и Uvicorn в нашей виртуальной среде.
-> python -m venv ./venv -> .\venv\Scripts\activate (venv) -> pip install fastapi uvicorn
Это всегда хорошая практика для создания Виртуальные среды
Открыть fastapi-https Папка в VSCode и создать каталог приложение который будет содержать наше приложение fastapi в Приложение/main.py Отказ Также создайте файл Server.py Чтобы запустить наши Увикурн Сервер и использовать его для обслуживания нашего приложения fastapi. Таким образом, структура вашего каталога должна выглядеть так:
Вставьте следующий код в Приложение/main.py который создаст для нас маршрут Fastapi.
from fastapi import FastAPI app = FastAPI() @app.get('/') def read_main(): return { "message" : "Hello World of FastAPI HTTPS"}
- Поскольку Fastapi не поставляется со встроенным веб-сервером, таким как колба и Django, мы будем использовать UVICORN, который является сервером ASGI. В файле Server.py вставьте следующий код –
import uvicorn if __name__ == '__main__': uvicorn.run("app.main:app", host="0.0.0.0", port=8432, reload=True, )
В этом коде в основной функции мы, по сути, мы скажем, увикурн серверу «чувак! Перейдите в App.main и запустите все это «приложение», а затем мы упомянем хост и порт а также Да, мы хотим перезагрузить и все эти вещи.
Теперь его запустить файл Server.py с
Python Server.py
и перейти к этой ссылке http://localhost: 8432/Оно работает! Но через “http” 🙄 Это не будет делать в производстве. Нам нужны HTTPS в производстве. Если вы хотите узнать больше о том, как работает HTTPS, я буду писать еще одну статью здесь. Чтобы получить HTTPS, нам нужно установить Mkcert Отказ Mkcert – это бесплатный способ получить сертификат для себя самообслуживания для вашего приложения, чтобы он мог пройти через HTTPS. Установите mkcert, используя Шоколад
-> choco install mkcert
- Вам нужно создать сертификат и добавить к вашему CA с утилитой MKCERT
-> mkcert -install -> mkcert localhost 127.0.0.1 ::1
Сертификат находится на «localhost + 2.pem» и ключ в «localhost + 2-Key.pem» в нашей папке проекта. Мне нравится переименовать файлы как «CERT.PEM» и «Key.pem», так что его немного легче на глазах.
Теперь нам просто нужно сказать UVicorn расположение этих файлов, а Uvicorn сделает все HTTPS, тяжелые для нас. В Server.py Добавить аргументы SSL
import uvicorn if __name__ == '__main__': uvicorn.run("app.main:app", host="0.0.0.0", port=8432, reload=True, ssl_keyfile="./key.pem", ssl_certfile="./cert.pem" )
- Вуаля! Перейти к https://localhost: 8432/Документы и теперь у нас есть сладкий зеленый текст
Оригинал: “https://dev.to/rajshirolkar/fastapi-over-https-for-development-on-windows-2p7d”