|
8 | 8 |
|
9 | 9 | import asyncio
|
10 | 10 | import logging
|
11 |
| -from collections.abc import Awaitable, Callable |
12 | 11 | from pathlib import Path
|
13 | 12 | from secrets import token_urlsafe
|
14 | 13 |
|
|
61 | 60 | logger = logging.getLogger(__name__)
|
62 | 61 |
|
63 | 62 |
|
64 |
| -@web.middleware |
65 |
| -async def server_version_middleware( |
66 |
| - request: web.Request, |
67 |
| - handler: Callable[[web.Request], Awaitable[web.StreamResponse]], |
68 |
| -) -> web.StreamResponse: |
69 |
| - """Add the version of Aleph-VM in the HTTP headers of the responses.""" |
70 |
| - resp: web.StreamResponse = await handler(request) |
71 |
| - resp.headers.update( |
72 |
| - {"Server": f"aleph-vm/{__version__}"}, |
73 |
| - ) |
74 |
| - return resp |
75 |
| - |
76 |
| - |
77 | 63 | @web.middleware
|
78 | 64 | async def error_middleware(request, handler) -> web.Response:
|
79 | 65 | "Ensure we always return a JSON response for errors."
|
@@ -103,13 +89,19 @@ async def error_middleware(request, handler) -> web.Response:
|
103 | 89 | assert False, "unreachable"
|
104 | 90 |
|
105 | 91 |
|
| 92 | +async def on_prepare_server_version(request: web.Request, response: web.Response) -> None: |
| 93 | + """Add the version of Aleph-VM in the HTTP headers of the responses.""" |
| 94 | + response.headers["Server"] = f"aleph-vm/{__version__}" |
| 95 | + |
| 96 | + |
106 | 97 | async def http_not_found(request: web.Request):
|
107 | 98 | """Return a 404 error for unknown URLs."""
|
108 | 99 | return web.HTTPNotFound()
|
109 | 100 |
|
110 | 101 |
|
111 | 102 | def setup_webapp():
|
112 |
| - app = web.Application(middlewares=[server_version_middleware, error_middleware]) |
| 103 | + app = web.Application(middlewares=[error_middleware]) |
| 104 | + app.on_response_prepare.append(on_prepare_server_version) |
113 | 105 | cors = setup(
|
114 | 106 | app,
|
115 | 107 | defaults={
|
|
0 commit comments