<VirtualHost *:80> ServerAdmin admin@example.com ServerName fastapi.example.com ServerAlias fastapi.example.com DocumentRoot /var/www/fastapi ErrorLog ${APACHE_LOG_DIR}/fastapi_error.log CustomLog ${APACHE_LOG_DIR}/fastapi_access.log combined WSGIScriptAlias / /var/www/fastapi/main.wsgi <Directory "/var/www/fastapi"> AllowOverride All </Directory> </VirtualHost>y creó los archivos main.wsgi y main.py.
principal.wsgi
#! /usr/bin/python3.7 import logging import sys logging.basicConfig(stream=sys.stderr) sys.path.insert(0, '/var/www/fastapi/') from main import app as application application.secret_key = 'alibaba'principal.py
from typing import Optional from fastapi import FastAPI app = FastAPI() @app.get("/") def read_root(): return {"Hello": "World"} @app.get("/items/{item_id}") def read_item(item_id: int, q: Optional[str] = None): return {"item_id": item_id, "q": q}Cuando intento acceder a la web, aparece el error interno del servidor 500 con el siguiente registro en fastapi_access.log
mod_wsgi (pid=24946): Exception occurred processing WSGI script '/var/www/fastapi/main.wsgi'. TypeError: __call__() missing 1 required positional argument: 'send'¿Podría por favor aconsejarme, cómo puedo solucionar este problema y qué estoy haciendo mal?
Gracias por adelantado.Los servidores WSGI no son compatibles con FastAPI, FastAPI solo se ejecuta en el servidor ASGI, gunicorn y todos los demás servidores WSGI solo implementan los estándares PEP con los trabajadores ASGI en profundidad, todavía funcionan como ASGI con los trabajadores.