Docs

# 3 dynamic query

# Dynamic Query

In a production application, we only enable modeled services. In development, it can be useful to allow dynamic queries.

The dynamic query endpoint is a service that accepts a dynamic projection and criteria as a request body. The format is very similar to the serialized form of a projection or service from the bootstrapped metamodel.

Say we wanted to query for all questions that start with the words "Why do". We could POST /api/meta/query/json:

{
    "className": "Question",
    "multiplicity": "many",
    "criteria": "this.title startsWith \"Why do\"",
    "projection": {
        "title": "Question title"
    }
}

There's also a form that uses GET, to allow easier experimentation from the browser. The same query can be encoded as query parameters.

/api/meta/query/json/Question?multiplicity=many&criteria=this.title startsWith "Why do"&include=this.title

If there's an existing projection that you want to reuse, you can just refer to it by name.

{
    "multiplicity": "many",
    "criteria": "this.title startsWith \"Why do\"",
    "projection": "QuestionReadProjection"
}