OpenAPI requests serialize `null` to "null"

I’m using a Table with Filters to build a request for my Open API endpoint. Each filter is a query parameter in my endpoint.

On my Open API Request action, I’m passing the value of my filters in to the query params like

{{ui.tableName.filters.filterName}}

If a filter isn’t set, {{ui.tableName.filters.filterName}} is null. This gets sent to my API though as a string containing the word “null” itself.

Is there a way to make optional query params not get parsed into the query string if their value is null?

Hi @travis_s,

I’m afraid such dynamic queries won’t work with Open API data source (as it has no JS mode for query params) :frowning:

The only workaround I see at the moment is an HTTP API step for such cases, where you can enable JS mode for params and generate them dynamically like this:

const queryParams = {};

if ({{ui.tableName.filters.id}} !== "") {
    queryParams.user_id = {{ui.tableName.filters.id}};
}

if ({{ui.tableName.filters.role}} !== undefined) {
    queryParams.status = {{ui.tableName.filters.role}};
}

if ({{ui.tableName.filters.status}} !== null) {
    queryParams.status = {{ui.tableName.filters.status}};
}

return queryParams;
1 Like