datatime json_encoders breaks docs #10619
Answered
by
hasansezertasan
CharlesJu1
asked this question in
Questions
-
First Check
Commit to Help
Example Codefrom datetime import datetime
import uvicorn
from fastapi import FastAPI
from pydantic import Field, BaseModel
app = FastAPI()
class Task(BaseModel):
created_at: datetime = Field(
...,
description="The creation datetime of the task.",
example="2023-01-01T00:00:00Z",
json_encoders={datetime: lambda v: v.isoformat()},
)
@app.post("/task/", response_model=Task)
async def create_task():
t = datetime.now()
res = {
"created_at": t
}
return res
if __name__ == '__main__':
uvicorn.run('__main__:app', host="127.0.0.1", port=8080, reload=True, log_level="debug") DescriptionThe above code works and responses as expected when a post request is sent via postman. However it breaks when trying to load the docs.
Operating SystemmacOS Operating System DetailsNo response FastAPI Version0.99.1 Pydantic Version1.10.13 Python VersionPython 3.10.11 Additional ContextNo response |
Beta Was this translation helpful? Give feedback.
Answered by
hasansezertasan
Nov 10, 2023
Replies: 1 comment 2 replies
-
Check this one out: import datetime
from fastapi import FastAPI
from pydantic import Field, BaseModel
app = FastAPI()
class Task(BaseModel):
created_at: datetime.datetime = Field(
...,
description="The creation datetime of the task.",
example="2023-01-01T00:00:00Z",
)
class Config:
json_encoders = {
datetime.datetime: lambda v: v.isoformat(),
}
@app.post("/task/", response_model=Task)
async def create_task():
return Task(
created_at=datetime.datetime.utcnow()
) |
Beta Was this translation helpful? Give feedback.
2 replies
Answer selected by
CharlesJu1
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Check this one out: