How to send JSON or Form data to FastAPI backend through Axios JavaScript HTTP request?
Use data instead of body on your axios’ options. See Request Config on axios documentation,
Use data instead of body on your axios’ options. See Request Config on axios documentation,
First, you need to adjust your endpoint on server side to accept path parameters, as in the way that is currently defined, lat and long are expected to be query parameters instead; however, in the JavaScript code you provided, it seems that you are trying to send those coordinates as path parameters. Thus, your endpoint … Read more
Returning FileResponse is solved my problem. Thanks to @Paul H and @clmno Below codes are working example of returning pdf file to download with FastApi. from typing import Optional from fastapi import FastAPI from starlette.responses import FileResponse import pdfkit app = FastAPI() config = pdfkit.configuration(wkhtmltopdf=r”C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe”) @app.get(“/”) def read_root(): pdfkit.from_url(“https://nakhal.expo.com.tr/nakhal/preview”,”file.pdf”, configuration=config) return FileResponse( “file.pdf”, media_type=”application/pdf”, … Read more
In the Axios GET request, you have to make sure the responseType parameter is set to blob. Once you get the response from the API, you will need to pass the Blob object (i.e., response.data) to the URL.createObjectURL() function. Below is a fully working example on how to create and download a file (Document), using … Read more
You could set the Content-Disposition header using the attachment parameter, indicating to the browser that the file should be downloaded, as described in the answers here and here. Swagger UI will provide a Download file link for you to download the file, as soon as you execute the request. headers = {‘Content-Disposition’: ‘attachment; filename=”Book.xlsx”‘} return … Read more
As described in this answer, uploaded files are sent as form data. As per FastAPI documentation: Data from forms is normally encoded using the “media type” application/x-www-form-urlencoded when it doesn’t include files. But when the form includes files, it is encoded as multipart/form-data. If you use File, FastAPI will know it has to get the … Read more
As per the documentation: Warning: When using FormData to submit POST requests using XMLHttpRequest or the Fetch_API with the multipart/form-data Content-Type (e.g. when uploading Files and Blobs to the server), do not explicitly set the Content-Type header on the request. Doing so will prevent the browser from being able to set the Content-Type header with … Read more
From the code snippet you provided, you seem to be using the (third-party) FastAPI-Login package. Their documentation suggests using a custom Exception on the LoginManager instance, which can be used to redirect the user to the login page, if they are not logged in. Working example: The authentication below is based on cookies, but you … Read more
You could use the AsyncClient() from the httpx library, as described in this answer, as well as this answer and this answer (have a look at those answers for more details on the approach demonstrated below). You can spawn a Client inside the startup event handler, store it on the app instance—as described here, as … Read more
Using async def endpoint If an object is a co-routine, it needs to be awaited. FastAPI is actually Starlette underneath, and Starlette methods for returning the request body are async methods (see the source code here as well); thus, one needs to await them (inside an async def endpoint). For example: from fastapi import Request … Read more