FHNW-IVGI / Geoharvester

NDGI Project Geoharvester
10 stars 1 forks source link

Fastapi dependency issue #87

Closed FStriewski closed 4 months ago

FStriewski commented 9 months ago

Fastapi version is currently locked in requirements.txt to fastapi==0.96.0 as higher versions throw an error (tested with 0.106.0).

Error message:

fastapi            |   File "/server/app/main.py", line 154, in <module>
fastapi            |     add_pagination(app)
fastapi            |   File "/usr/local/lib/python3.9/site-packages/fastapi_pagination/api.py", line 366, in add_pagination
fastapi            |     _add_pagination(parent)
fastapi            |   File "/usr/local/lib/python3.9/site-packages/fastapi_pagination/api.py", line 362, in _add_pagination
fastapi            |     _update_route(route)
fastapi            |   File "/usr/local/lib/python3.9/site-packages/fastapi_pagination/api.py", line 345, in _update_route
fastapi            |     get_parameterless_sub_dependant(
fastapi            |   File "/usr/local/lib/python3.9/site-packages/fastapi/dependencies/utils.py", line 125, in get_parameterless_sub_dependant
fastapi            |     return get_sub_dependant(depends=depends, dependency=depends.dependency, path=path)
fastapi            |   File "/usr/local/lib/python3.9/site-packages/fastapi/dependencies/utils.py", line 148, in get_sub_dependant
fastapi            |     sub_dependant = get_dependant(
fastapi            |   File "/usr/local/lib/python3.9/site-packages/fastapi/dependencies/utils.py", line 269, in get_dependant
fastapi            |     sub_dependant = get_param_sub_dependant(
fastapi            |   File "/usr/local/lib/python3.9/site-packages/fastapi/dependencies/utils.py", line 112, in get_param_sub_dependant
fastapi            |     return get_sub_dependant(
fastapi            |   File "/usr/local/lib/python3.9/site-packages/fastapi/dependencies/utils.py", line 148, in get_sub_dependant
fastapi            |     sub_dependant = get_dependant(
fastapi            |   File "/usr/local/lib/python3.9/site-packages/fastapi/dependencies/utils.py", line 290, in get_dependant
fastapi            |     add_param_to_fields(field=param_field, dependant=dependant)
fastapi            |   File "/usr/local/lib/python3.9/site-packages/fastapi/dependencies/utils.py", line 484, in add_param_to_fields
fastapi            |     assert (
fastapi            | AssertionError: non-body parameters must be in path, query, header or cookie: size

probably caused by size parameter in main.py:

Page = Page.with_custom_options(
    size=Field(DEFAULTSIZE, ge=1, le=DEFAULTSIZE),
)

Setting it to a number does not fix the issue. This comes from the fastapi-pagination package. Both versions (0.12.3 and 4) are working. According to v.0.12.3 documentation the syntax is correct. Might be a bug with fastapi. Until they have fixed it, we should leave the version lock in place.