Ich lerne Webentwicklung, ich habe einige Erfahrung in Python Scripting. Dieses Mal wollte ich eine API in Python erstellen, also überprüfen Sie schnelle API -Dokumente. Ich habe die folgende Einrichtung (Beispiel für den Zweck dieses Beitrags). Basierend auf den Beispielen auf der schnellen API -Website habe ich den folgenden Python -Code erstellt, der zwei Methoden enthält. Außerdem habe ich Klassen definiert, die die Daten darstellen, die ich in diesen Methoden lesen möchte. Mein Unterstehen ist, dass die pydantische Bibliothek Daten validiert. Zum Testen habe ich den Curl -Befehl als solches verwendet, was funktioniert. Pydantic map die Daten {'name': 'foo'} Ich habe in Curl -Befehl an die Klasse gesendet, die ich definiert habe. Gibt es eine Dokumentation darüber, wie Daten Daten abgebildet werden? Für meine nächste Methode möchte ich Inhalte einer Datei wie Video-/Audio -Daten veröffentlichen, die ich verstehe, die ich als Rohbinärdaten senden kann. Ich habe die FileContent -Klasse mit einem Feld definiert, das Bytes speichern kann. Aber wenn ich versuche, Dateiinhalte zu veröffentlichen, < /p>
Code: Select all
curl -X POST -F "file=@somefile.wav" http://127.0.0.1:5000/upload_file_content
< /code>
Ich erhalte einen JSON -Serialisierungsfehler. Wie kann ich den binären Inhalt der Datei zuordnen, ich sende über Curl an die FileContent -Klasse? < /p>
curl -X "POST" \
"http://127.0.0.1:5000/items" \
-H "accept: application/json" \
-H "Content-Type: application/json" \
-d "{\"name\": \"foo\"}"
< /code>
from fastapi import FastAPI
from pydantic import BaseModel, bytes
app = FastAPI()
class FileContent(BaseModel):
data: bytes
class Item(BaseModel):
name: str
@app.post("/items/")
async def create_item(item: Item):
return item
@app.post("/upload_file_content/")
async def upload_file_content(file_content: FileContent):
# do something with file content here