PostJsonSearch

PostJsonSearch#

class eodag.plugins.search.qssearch.PostJsonSearch(provider, config)[source]#

A specialisation of a QueryStringSearch that uses POST method

All configuration parameters available for QueryStringSearch are also available for PostJsonSearch. The mappings given in metadata_mapping are used to construct a (json) body for the POST request that is sent to the provider. Due to the fact that we sent a POST request and not a get request, the pagination configuration will look slightly different. It has the following parameters:

Parameters:
  • provider (str) – provider name

  • config (PluginConfig) –

    Search plugin configuration:

    • next_page_query_obj (str): The additional parameters needed to add pagination information to the search request. These parameters won’t be included in result. This must be a json dict formatted like {{"foo":"bar"}} because it will be passed to a str.format() method before being loaded as json.

    • total_items_nb_key_path (str): An XPath or JsonPath leading to the total number of results satisfying a request. This is used for providers which provides the total results metadata along with the result of the query and don’t have an endpoint for querying the number of items satisfying a request, or for providers for which the count endpoint returns a json or xml document

    • max_items_per_page (int): The maximum number of items per page that the provider can handle; default: 50

__init__(provider, config)#
Parameters:

Methods

__init__(provider, config)

build_query_string(product_type, query_dict)

Build The query string using the search parameters

build_sort_by(sort_by_arg)

Build the sorting part of the query string or body by transforming the sort_by argument into a provider-specific string or dictionary

clear()

Clear search context

collect_search_urls([prep])

Adds pagination to query parameters, and auth to url

count_hits(count_url[, result_type])

Count the number of results satisfying some criteria

discover_product_types(**kwargs)

Fetch product types list from provider using discover_product_types conf

discover_product_types_per_page(**kwargs)

Fetch product types list from provider using discover_product_types conf using paginated kwargs["fetch_url"]

discover_queryables(**kwargs)

Fetch queryables list from provider using discover_queryables conf

do_search([prep])

Perform the actual search request.

get_assets_from_mapping(provider_item)

Create assets based on the assets_mapping in the provider's config and an item returned by the provider

get_collections(prep, **kwargs)

Get the collection to which the product belongs

get_metadata_mapping([product_type])

Get the plugin metadata mapping configuration (product type specific if exists)

get_product_type_cfg_value(key[, default])

Get the value of a configuration option specific to the current product type.

get_product_type_def_params(product_type[, ...])

Get the provider product type definition parameters and specific settings

get_sort_by_arg(kwargs)

Extract the sort_by argument from the kwargs or the provider default sort configuration

list_queryables(filters, ...[, ...])

Get queryables

map_product_type(product_type, **kwargs)

Get the provider product type from eodag product type

normalize_results(results, **kwargs)

Build EOProducts from provider results

query([prep])

Perform a search on an OpenSearch-like interface

queryables_from_metadata_mapping([...])

Extract queryable parameters from product type metadata mapping.

validate(search_params, auth)

Validate a search request.

Attributes

extract_properties

plugins

auth

next_page_url

next_page_query_obj

total_items_nb

need_count