# Public Data API
The public data API module exposes parts of the normal API without authentication. The data is filtered and made available using Meta-data on the original installations, functions and devices.
# Paths
The API paths exposed in the Public Data API mirrors those of the platform in structure, parameters and responses. The middleware here will expose a subset of information fetched from the original API endpoints. It is only possible to do GET requests to this API.
All public data endpoints are prepended with the word public like
so: /public/<original-path>
.
Exposed paths |
---|
/public/api/v2/installation |
/public/api/v2/installation/<installation_id> |
/public/api/v2/functionx/<installation_id> |
/public/api/v2/functionx/<installation_id>/<function_id> |
/public/api/v2/devicex/<installation_id> |
/public/api/v2/devicex/<installation_id>/<function_id> |
/public/api/v2/status/<installation_id> |
/public/api/v3/log/<installation_id> |
/public/api/v3beta/log/<installation_id> |
# Mark object as public information
Meta-data is used on all objects to mark them as exposed in the Public Data API.
The key public
need to be set to true
/1
on objects being exposed. The API
response will be 404 when an ID for a non-exported object is used. It is
important to always expose the installation first for the
functions/devices/log/status to work correctly.
# Override exposed meta-values
It is possible to override meta-data parameters on the exposed object using overrides in meta-data. This makes it possible to expose an object with a different name or with a different type when accessed as public data. And to cover up private information in the object metadata.
Overrides of meta-data is the same meta-key prepended with the public.
prefix.
Example:
Original | Override |
---|---|
name = My house temperature | public.name = Stockholm temperature |
location = Some secret place | public.location = Outside |
It is also possible to override the type
used in the public data API using the
key public.type
.