Things-Search

Count things

GET
https://ditto.eclipseprojects.io/api/2/search/things/count

This resource can be used to count things.

The query parameter filter is not mandatory. If it is not set there is returned the total amount of things which the logged in user is allowed to read.

To search for nested properties, we use JSON Pointer notation (RFC-6901). See the following example how to search for the sub property location of the parent property attributes with a forward slash as separator:

eq(attributes/location,"kitchen")

Parameters

filterstringquery

Filter predicates:

  • eq({property},{value}) (i.e. equal to the given value)

  • ne({property},{value}) (i.e. not equal to the given value)

  • gt({property},{value}) (i.e. greater than the given value)

  • ge({property},{value}) (i.e. equal to the given value or greater than it)

  • lt({property},{value}) (i.e. lower than the given value or equal to it)

  • le({property},{value}) (i.e. lower than the given value)

  • in({property},{value},{value},...) (i.e. contains at least one of the values listed)

  • like({property},{value}) (i.e. contains values similar to the expressions listed)

  • ilike({property},{value}) (i.e. contains values similar and case insensitive to the expressions listed)

  • exists({property}) (i.e. all things in which the given path exists)

  • empty({property}) (i.e. all things in which the given path is absent, null, an empty array, an empty object or an empty string)

Note: When using filter operations, only things with the specified properties are returned. For example, the filter ne(attributes/owner, "SID123") will only return things that do have the owner attribute.

Logical operations:

  • and({query},{query},...)

  • or({query},{query},...)

  • not({query})

Examples:

  • eq(attributes/location,"kitchen")

  • ge(thingId,"myThing1")

  • gt(_created,"2020-08-05T12:17")

  • exists(features/featureId)

  • empty(attributes/tags)

  • and(eq(attributes/location,"kitchen"),eq(attributes/color,"red"))

  • or(eq(attributes/location,"kitchen"),eq(attributes/location,"living-room"))

  • like(attributes/key1,"known-chars-at-start*")

  • like(attributes/key1,"*known-chars-at-end")

  • like(attributes/key1,"*known-chars-in-between*")

  • like(attributes/key1,"just-som?-char?-unkn?wn")

The like filters with the wildcard * at the beginning can slow down your search request.

namespacesstringquery

A comma-separated list of namespaces. This list is used to limit the query to things in the given namespaces only.

Examples:

  • ?namespaces=com.example.namespace

  • ?namespaces=com.example.namespace1,com.example.namespace2

timeoutstringquery

Defines how long the backend should wait for completion of the request, e.g. applied when waiting for requested acknowledgements via the requested-acks param. Can be specified without unit (then seconds are assumed) or together with s, ms or m unit. Example: 42s, 1m.

The default (if omitted) and maximum timeout is 60s. A value of 0 applies fire and forget semantics for the command resulting in setting response-required=false.

Response

200OKinteger

A number indicating the amount of matched things

Response fields application/json
integer
400Bad RequestAdvancedError

The request could not be completed. A provided parameter is in a wrong format.

Response fields application/json
statusintegerrequired

The HTTP status of the error

errorstringrequired

The error code of the occurred exception

messagestringrequired

The message of the error - what went wrong

descriptionstring

A description how to fix the error or more details

hrefstring

A link to further information about the error and how to fix it

401UnauthorizedAdvancedError

The request could not be completed due to missing authentication.

Response fields application/json
statusintegerrequired

The HTTP status of the error

errorstringrequired

The error code of the occurred exception

messagestringrequired

The message of the error - what went wrong

descriptionstring

A description how to fix the error or more details

hrefstring

A link to further information about the error and how to fix it

403ForbiddenAdvancedError

The request could not be completed due to an invalid authentication.

Response fields application/json
statusintegerrequired

The HTTP status of the error

errorstringrequired

The error code of the occurred exception

messagestringrequired

The message of the error - what went wrong

descriptionstring

A description how to fix the error or more details

hrefstring

A link to further information about the error and how to fix it

504Gateway TimeoutAdvancedError

The request ran out of time to execute on the the back-end. Optimize your query and try again.

Response fields application/json
statusintegerrequired

The HTTP status of the error

errorstringrequired

The error code of the occurred exception

messagestringrequired

The message of the error - what went wrong

descriptionstring

A description how to fix the error or more details

hrefstring

A link to further information about the error and how to fix it

Authorization

OpenIDConnectopenIdConnect

OpenID Connect Discovery URL. The placeholder is replaced by Swagger UI when configured.

NginxBasichttp (basic)

Eclipse Ditto sandbox demo user (demo1 ... demo9) + password (demo)

Bearerhttp (bearer)

A JSON Web Token issued by a supported OAuth 2.0 Identity Provider.