Browse Source

📝 Add source example for bytes in JSON

pull/14953/head
Sebastián Ramírez 5 months ago
parent
commit
2e6ac1a9b4
  1. 0
      docs_src/json_base64_bytes/__init__.py
  2. 46
      docs_src/json_base64_bytes/tutorial001_py310.py
  3. 1
      pyproject.toml

0
docs_src/json_base64_bytes/__init__.py

46
docs_src/json_base64_bytes/tutorial001_py310.py

@ -0,0 +1,46 @@
from fastapi import FastAPI
from pydantic import BaseModel
class DataInput(BaseModel):
description: str
data: bytes
model_config = {"val_json_bytes": "base64"}
class DataOutput(BaseModel):
description: str
data: bytes
model_config = {"ser_json_bytes": "base64"}
class DataInputOutput(BaseModel):
description: str
data: bytes
model_config = {
"val_json_bytes": "base64",
"ser_json_bytes": "base64",
}
app = FastAPI()
@app.post("/data")
def post_data(body: DataInput):
content = body.data.decode("utf-8")
return {"description": body.description, "content": content}
@app.get("/data")
def get_data() -> DataOutput:
data = "hello".encode("utf-8")
return DataOutput(description="A plumbus", data=data)
@app.post("/data-in-out")
def post_data_in_out(body: DataInputOutput) -> DataInputOutput:
return body

1
pyproject.toml

@ -548,6 +548,7 @@ ignore = [
"docs_src/security/tutorial005_an_py39.py" = ["B904"]
"docs_src/security/tutorial005_py310.py" = ["B904"]
"docs_src/security/tutorial005_py39.py" = ["B904"]
"docs_src/json_base64_bytes/tutorial001_py310.py" = ["UP012"]
[tool.ruff.lint.isort]
known-third-party = ["fastapi", "pydantic", "starlette"]

Loading…
Cancel
Save