-
Notifications
You must be signed in to change notification settings - Fork 30
Open
Description
Hello.
I'm having trouble downloading PDF files from the microservice. I suppose that the maqueRequest method only decodes JSON responses. In my example, the gateway throws an exception since the microservice returns a StreamingResponse.
with async_timeout.timeout(delay=timeout):
async with aiohttp.ClientSession(headers=headers) as session:
async with session.request(
method=method, url=url, params=query, data=data) as response:
response_json = await response.json()
decoded_json = decode_json(data=response_json)
return decoded_json, response.status, response.headers
My method signature
@pmrush_billing_information_router.get("/api/billing/invoices/download/{invoice_number}", response_model=Any,
tags=["billing_information"])
@pm_logger
async def download_invoice(self, invoice_number: str, auth_user: UserInfoResponse = Depends(get_current_user)):
......
invoice_pdf = requests.get(download_link, stream=True)
output = BytesIO(invoice_pdf.content)
output.seek(0)
headers = {
'Content-Disposition': 'attachment; filename="invoice.pdf"'
}
return StreamingResponse(output, headers=headers)
Api gateway signature:
@staticmethod
@route(
request_method=api_gateway_billing_information_router.get,
service_url=SERVICE_URL,
gateway_path='/api/billing/invoices/download/{invoice_number}',
service_path='/api/billing/invoices/download/{invoice_number}',
query_params=["invoice_number"],
body_params=[],
status_code=status.HTTP_200_OK,
tags=['billing_information'],
response_model=Any
)
@pm_logger
async def download_invoice(invoice_number: str, request: Request, response: Response,
token: str = Depends(reuseable_oauth)):
pass
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels