Data Availability Web Service

From Fusion Registry Wiki
Revision as of 06:37, 16 February 2022 by Mnelson (talk | contribs) (Example API Version 2.0.0)
Jump to navigation Jump to search


Overview

The Data Availability API is used to determine what Dimension values exist for specific Dataflows, and can take into account the state of current filters applied to the data query. This is very useful in supporting the user case of a data query builder which prevents a user from selecting a combination of Dimension filters which result in no data being returned.

The API specification was updated in SDMX v3.0.0 to align with other changes made to the data query. This page documents the v1 specification and v2 specification of the API.

Example API Version 2.0.0

This API required Fusion Registry 11 and has some extensions not supported by the specification

Data Availability across all Dataflows

This is not an official part of the specification, but it is useful as can be used to provide information about every Dataflow in the system which has data, and enables the system to link every Code back to one or more Dataflows.

List all Dataflows which have data

FusionRegistry/sdmx/v2/availability/dataflow

Include the series count

FusionRegistry/sdmx/v2/availability/dataflow/?includeMetrics

Include Codelists and Concepts Schemes

FusionRegistry/sdmx/v2/availability/dataflow/?includeMetrics&references=descendants&

Note, in the above query the Codelists and Concept Schemes will only contain the items in the list which have Data related to them (i.e. if a Codelist has 8000 Codes but only 300 have data, the response will only contain the 300 Codes with data). If a Code in a Codelist does not have data, but it is the parent of a Code which does have data, it will be included in the response message.

Example API Version 1.5.0

Availability of EUR exchange rate data for Danish Krone (from ECB EXR)

https://demo.metadatatechnology.com/FusionRegistry/ws/public/sdmxapi/rest/availableconstraint/EXR/.DKK...?references=none&mode=exact

The response is a content constraint which describes the values for each dimension that have data, given that CURRENCY is fixed to DKK in the query. In particular it shows there are series for frequencies A, Q, D, H and M. There’s also a ‘series_count’ annotation which tells us the query would return 8 series if run.

Retrieve valid code selections based on the current query

https://demo.metadatatechnology.com/FusionRegistry/ws/public/sdmxapi/rest/availableconstraint/EXR/.DKK...?references=none&mode=available

By switching from mode=exact to mode=available the response changes, it no longer shows what data will come back from the query - it shows what code options remain valid for all the Dimensions of the DSD. A valid choice is one which will result in data being returned, in the context of the current query. This is useful to prevent a user from building a data query which results in 'no data' due to an invalid combination of dimension selections.

Availability of EUR exchange rate data for the Egyptian Pound (ECB EXR again)

https://demo.metadatatechnology.com/FusionRegistry/ws/public/sdmxapi/rest/availableconstraint/EXR/.EGP...?references=none&mode=exact

The same query as above, but this time querying for EUR vs EGP exchange rates. Here only series with frequencies A, Q and M are available. And the ‘series_count’ annotation tells us we would get 3 series.