Рубрики
Без рубрики

Fastapi над https для разработки в окнах

Сегодня мы реализуем Fastapi через HTTPS с помощью MKCERT и настроить наш собственный орган сертификата (CA) на … Теги с Python, Fastapi, HTTPS, Windows.

Сегодня мы реализуем 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://dev.to/rajshirolkar/fastapi-over-https-for-development-on-windows-2p7d”