Heim > Backend-Entwicklung > Python-Tutorial > Wie gehe ich mit Fehlern beim Senden von JSON-Daten von JavaScript an FastAPI um?

Wie gehe ich mit Fehlern beim Senden von JSON-Daten von JavaScript an FastAPI um?

Mary-Kate Olsen
Freigeben: 2024-11-13 16:53:03
Original
905 Leute haben es durchsucht

How to Handle Errors When Sending JSON Data from JavaScript to FastAPI?

Fehlerbehandlung beim Posten von JSON-Daten von JavaScript an FastAPI

Um Daten von einem JavaScript-Frontend an ein FastAPI-Backend zu senden, müssen Sie sicherstellen, dass Daten werden im richtigen Format und an den entsprechenden Endpunkt übergeben. Wenn der Fehler 422 Unprocessable Entity auftritt, liegt dies wahrscheinlich an einer falschen Datenformatierung.

Abfrageparameter im Vergleich zu JSON-Parametern

Standardmäßig interpretiert FastAPI Funktionsparameter, die nicht im Pfad enthalten sind, als Abfrageparameter. Für JSON-Daten müssen Sie diese jedoch explizit mit einer der folgenden Methoden angeben:

1. Pydantic-Modell:

Definieren Sie ein Pydantic-Modell zur Darstellung der JSON-Datenstruktur:

from pydantic import BaseModel

class Item(BaseModel):
    eth_addr: str

@app.post('/ethAddress')
def add_eth_addr(item: Item):
    return item
Nach dem Login kopieren

2. Körpertyp:

Verwenden Sie den Körpertyp, um anzugeben, dass der Parameter aus dem Anforderungskörper analysiert werden soll:

from fastapi import Body

@app.post('/ethAddress')
def add_eth_addr(eth_addr: str = Body()):
    return {'eth_addr': eth_addr}
Nach dem Login kopieren

3. Body Embed:

Für einen einzelnen Body-Parameter können Sie das Argument „embed=True“ verwenden, um die Daten aus dem Anfragetext automatisch zu analysieren:

from fastapi import Body

@app.post('/ethAddress')
def add_eth_addr(eth_addr: str = Body(embed=True)):
    return {'eth_addr': eth_addr}
Nach dem Login kopieren

JavaScript Fetch API

Wenn Sie die Fetch-API in JavaScript zum Senden von JSON-Daten verwenden, müssen Sie den Content-Type-Header auf application/json setzen und die Daten im Text angeben Feld:

fetch("http://localhost:8000/ethAddress", {
  method: "POST",
  headers: {
    'Accept': 'application/json',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    "eth_addr": "some address"
  }),
});
Nach dem Login kopieren

Zusätzliche Ressourcen

Weitere Informationen und detaillierte Beispiele finden Sie in der folgenden Dokumentation und Ressourcen:

  • [FastAPI JSON Request and Response] (https://fastapi.tiangolo.com/tutorial/body/)
  • [Senden von JSON-Daten mit POST-Anfragen in JavaScript](https://stackoverflow.com/questions/44832885/sending-json-data-with-post-requests-in-javascript)
  • [POST-Anfrage mit JSON-Inhalt in JavaScript mit Fetch API](https://stackoverflow.com/questions/55749929/post-request-with-json-content-in-javascript-using-fetch-api)

Das obige ist der detaillierte Inhalt vonWie gehe ich mit Fehlern beim Senden von JSON-Daten von JavaScript an FastAPI um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage