Closed StijnCaerts closed 1 year ago
Do you want to make a pr for this here? Theoretically it can be set both places?
It can only be set in one place, as you can only supply one value for a keyword argument.
Judging from a quick GitHub search, it seems like stac-fastapi-elasticsearch
is the only project using the filter_fields
property to get the desired output from pydantic, so I'll create a PR here.
Describe the bug When the fields extension is enabled, the search response will include null for every field that is not defined in an item.
To Reproduce Steps to reproduce the behavior:
/search
requestExpected behavior According to the STAC API Fields extension, a field should not be specified in the search response if it does not apply to an Item. https://github.com/stac-api-extensions/fields/blob/6662435f98b8fff6e5d8ffa0f212e3241a10bc6f/README.md?plain=1#L58-L61
Additional context This bug can be solved in the following ways: Fix it in stac-fastapi-elasticsearch by adding the
exclude_unset=True
parameter to the.json()
call. https://github.com/stac-utils/stac-fastapi-elasticsearch/blob/5f26c325940761da7ecd86677da7acceea69bb78/stac_fastapi/elasticsearch/stac_fastapi/elasticsearch/core.py#L512Or fix it in stac-fastapi by adding
exclude_unset
to thePostFieldsExtension:filter_fields
dictionary. https://github.com/stac-utils/stac-fastapi/blob/09dac221d86fe70035aa6cddbc9a3f0de304aff5/stac_fastapi/extensions/stac_fastapi/extensions/core/fields/request.py#L57-L60