Skip to content

Commit

Permalink
fix: allow API endpoint to return response directly (#4581)
Browse files Browse the repository at this point in the history
* fix: allow API endpoint to return response directly

Signed-off-by: Frost Ming <me@frostming.com>
  • Loading branch information
frostming committed Mar 15, 2024
1 parent 4909488 commit 8fe2d5c
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions src/_bentoml_impl/server/app.py
Expand Up @@ -14,6 +14,7 @@
from simple_di import Provide
from simple_di import inject
from starlette.middleware import Middleware
from starlette.responses import Response
from starlette.staticfiles import StaticFiles

from _bentoml_sdk import Service
Expand All @@ -30,7 +31,6 @@
from opentelemetry.sdk.trace import Span
from starlette.applications import Starlette
from starlette.requests import Request
from starlette.responses import Response
from starlette.routing import BaseRoute

from bentoml._internal import external_typing as ext
Expand Down Expand Up @@ -469,7 +469,10 @@ async def inner() -> t.AsyncGenerator[t.Any, None]:
else:
output = await self._to_thread(func, *input_args, **input_params)

response = await method.output_spec.to_http_response(output, serde)
if isinstance(output, Response):
response = output
else:
response = await method.output_spec.to_http_response(output, serde)
response.headers.update({"Server": f"BentoML Service/{self.service.name}"})

if method.ctx_param is not None:
Expand Down

0 comments on commit 8fe2d5c

Please sign in to comment.