From dcd4f6a8178d5f7c7329b47039305f7e3b740899 Mon Sep 17 00:00:00 2001 From: Jeny Sadadia Date: Thu, 21 Mar 2024 11:43:15 +0530 Subject: [PATCH] api.main: fix validation error for `None` response FastAPI doesn't validate `None` when handler has specified a response model. Fix the below validation error for GET node by ID and GET group by ID requests: ``` {"detail":"1 validation error for UserGroup\nresponse\n none is not an allowed value (type=type_error.none.not_allowed)"} ``` The change has been effective from `fastapi 0.80.0` version. Reference: https://github.com/tiangolo/fastapi/pull/2725. Signed-off-by: Jeny Sadadia --- api/main.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/api/main.py b/api/main.py index 68998414..9e16a586 100644 --- a/api/main.py +++ b/api/main.py @@ -10,7 +10,7 @@ import os import re -from typing import List +from typing import List, Union from fastapi import ( Depends, FastAPI, @@ -387,7 +387,7 @@ async def get_user_groups(request: Request): return paginated_resp -@app.get('/group/{group_id}', response_model=UserGroup, +@app.get('/group/{group_id}', response_model=Union[UserGroup, None], response_model_by_alias=False) async def get_group(group_id: str): """Get user group information from the provided group id""" @@ -448,7 +448,7 @@ async def translate_null_query_params(query_params: dict): return translated -@app.get('/node/{node_id}', response_model=Node, +@app.get('/node/{node_id}', response_model=Union[Node, None], response_model_by_alias=False) async def get_node(node_id: str): """Get node information from the provided node id"""