import uvicorn
from fastapi import FastAPI, Query
app = FastAPI()
@app.get("/")
async def read_items(name:str= Query(max_length=5,error_message='name too long'),
age:int= Query(error_message='age need intger')):
return '...'
if __name__ == '__main__':
uvicorn.run(app="main:app", host="localhost", port=5000)
If I type http://localhost:5000/?name=asdfasdfasdfasdreerer&age=s
, the error message would be as shown below:
{"detail":[{"loc":["query","name"],"msg":"ensure this value has at most 5 characters","type":"value_error.any_str.max_length","ctx":{"limit_value":5}},{"loc":["query","age"],"msg":"value is not a valid integer","type":"type_error.integer"}]}
However, I would like to display my own custom error message:
{"detail":[{"loc":["query","name"],"msg":"name too long","type":"value_error.any_str.max_length","ctx":{"limit_value":5}},{"loc":["query","age"],"msg":"age need integer","type":"type_error.integer"}]}
'error message' is a assumed property