PythonQuick & dirty server.pyimport json import aiohttp from aiohttp import web import os API_KEY = os.environ.get("API_KEY") @web.middleware async def api_key_middleware( request: web.Request, handler: web.RequestHandler, ) -> web.Response: api_key = request.headers.get("X-API-Key") if API_KEY != api_key: return web.Response( content_type="application/json", text=json.dumps({"error": "Invalid api key"}), status=400, ) return await handler(request) async def api_route(request: web.Request) -> web.Response: try: data = await request.json() name = data.get("name") if prompt: reponse = { "name": name } return web.Response( content_type="application/json", text=json.dumps(reponse) ) return web.Response( content_type="application/json", text=json.dumps({"error": 'missing "name"'}), status=400, ) except (aiohttp.payload.LookupError, json.JSONDecodeError): return web.Response( content_type="application/json", text=json.dumps({"error": "invalid json input"}), status=400, ) app = web.Application(middlewares=[api_key_middleware]) app.add_routes([web.post("/api", api_route)]) if __name__ == "__main__": web.run_app(app, port=8080)