restQL-clojure allows to run restQL queries, making easy to fetch information from multiple services in the most efficient manner
Add restQL dependency to your project
Lein
[b2wdigital/restql-core "3.4.1"]
NPM
npm i @b2wdigital/restql
Clojure
(require '[restql.core.api.restql :as restql])
(restql/execute-query :mappings { :user "http://your.api.url/users/:name" } :query "from user with name = $name" :params { :name "Duke Nukem" } )
Node
var restql = require('@b2wdigital/restql')
// executeQuery(mappings, query, params, options) => <Promise>
restql
.executeQuery(
{user: "http://your.api.url/users/:name"},
"from user with name = $name",
{ name: "Duke Nukem" })
.then(response => console.log(response))
.catch(error => console.log(error))
In the example above restQL will call user API passing "Duke Nukem" in the name param.
The clause order matters when making restQL queries. The following is a full reference to the query syntax, available clauses and order.
[ [ use modifier = value ] ]
METHOD resource-name [as some-alias] [in some-resource]
[ headers HEADERS ]
[ timeout INTEGER_VALUE ]
[ with WITH_CLAUSES ]
[ [only FILTERS] OR [hidden] ]
[ [ignore-errors] ]
e.g:
from search
with
role = "hero"
from hero as heroList
with
name = search.results.name
Learn more about restQL query language
- Docs
- Code API: restQL-clojure code documentation
- restQL-clojure: If you want to embed restQL directly into your Clojure application,
- restQL-java: If you want to embed restQL directly into your Java application,
- restQL-manager: To manage saved queries and resources endpoints. restQL-manager requires a MongoDB instance.
- Tackling microservice query complexity: Project motivation and history
- #restql: clojurians restQL Slack channel
- @restQL: restQL Telegram Group
- infoQ: restQL, a Microservices Query Language, Released on GitHub
- infoQ: 微服务查询语言restQL已在GitHub上发布
- OSDN Mag: マイクロサービスクエリ言語「restQL 2.3」公開
- Build API's w/ GraphQL, RestQL or RESTful?
Copyright © 2016-2019 B2W Digital
Distributed under the MIT License.