added example using compojure api
This commit is contained in:
parent
159720b3c9
commit
f1b9d5e316
5 changed files with 67 additions and 1 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1,3 +1,4 @@
|
||||||
|
examples/target
|
||||||
target
|
target
|
||||||
.lein-failures
|
.lein-failures
|
||||||
.lein-history
|
.lein-history
|
||||||
|
|
15
examples/project.clj
Normal file
15
examples/project.clj
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
(defproject y42/clj-druid-examples "0.2.3"
|
||||||
|
:description "clj-druid-examples"
|
||||||
|
:dependencies [[org.clojure/clojure "1.6.0"]
|
||||||
|
[clj-time "0.9.0"] ;; needed as `lein ring` is broken
|
||||||
|
[metosin/compojure-api "0.20.3"]
|
||||||
|
[metosin/ring-http-response "0.6.1"]
|
||||||
|
[metosin/ring-swagger-ui "2.1.1-M2"]
|
||||||
|
[y42/clj-druid "0.2.3"]]
|
||||||
|
:ring {:handler handler/app}
|
||||||
|
:uberjar-name "examples.jar"
|
||||||
|
:uberwar-name "examples.war"
|
||||||
|
:profiles {:uberjar {:resource-paths ["swagger-ui"]
|
||||||
|
:aot :all}
|
||||||
|
:dev {:dependencies [[javax.servlet/servlet-api "2.5"]]
|
||||||
|
:plugins [[lein-ring "0.9.4"]]}})
|
41
examples/src/handler.clj
Normal file
41
examples/src/handler.clj
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
(ns handler
|
||||||
|
(:require [compojure.api.sweet :refer :all]
|
||||||
|
[ring.util.http-response :refer :all]
|
||||||
|
[clj-druid.schemas.query :refer :all]))
|
||||||
|
|
||||||
|
(defapi app
|
||||||
|
(swagger-ui)
|
||||||
|
(swagger-docs
|
||||||
|
{:info {:title "clj-druid + Compojure API"
|
||||||
|
:description "clj-druid sample application"}})
|
||||||
|
(context* "/druid" []
|
||||||
|
:tags ["query"]
|
||||||
|
(POST* "/groupBy" []
|
||||||
|
:body [q groupBy]
|
||||||
|
:summary "Issue a groupBy query"
|
||||||
|
(ok true))
|
||||||
|
|
||||||
|
(POST* "/topN" []
|
||||||
|
:body [q topN]
|
||||||
|
:summary "Issue a topN query"
|
||||||
|
(ok true))
|
||||||
|
|
||||||
|
(POST* "/timeseries" []
|
||||||
|
:body [q timeseries]
|
||||||
|
:summary "Issue a timeseries query"
|
||||||
|
(ok true))
|
||||||
|
|
||||||
|
(POST* "/search" []
|
||||||
|
:body [q search]
|
||||||
|
:summary "Issue a search query"
|
||||||
|
(ok true))
|
||||||
|
|
||||||
|
(POST* "/timeBoundary" []
|
||||||
|
:body [q timeBoundary]
|
||||||
|
:summary "Issue a timeBoundary query"
|
||||||
|
(ok true))
|
||||||
|
|
||||||
|
(POST* "/segmentMetadata" []
|
||||||
|
:body [q segmentMetadata]
|
||||||
|
:summary "Issue a segmentMetadata query"
|
||||||
|
(ok true))))
|
|
@ -1,4 +1,4 @@
|
||||||
(defproject y42/clj-druid "0.2.2"
|
(defproject y42/clj-druid "0.2.3"
|
||||||
:description "Clojure library for Druid.io"
|
:description "Clojure library for Druid.io"
|
||||||
:url "http://github.com/y42/clj-druid"
|
:url "http://github.com/y42/clj-druid"
|
||||||
:license {:name "MIT"
|
:license {:name "MIT"
|
||||||
|
|
|
@ -95,6 +95,15 @@
|
||||||
(s/optional-key :bound) (s/enum :minTime :maxTime)
|
(s/optional-key :bound) (s/enum :minTime :maxTime)
|
||||||
(s/optional-key :context) context})
|
(s/optional-key :context) context})
|
||||||
|
|
||||||
|
(s/defschema query
|
||||||
|
(s/either groupBy
|
||||||
|
search
|
||||||
|
segmentMetadata
|
||||||
|
timeBoundary
|
||||||
|
timeseries
|
||||||
|
topN
|
||||||
|
select))
|
||||||
|
|
||||||
(def queries {:groupBy groupBy
|
(def queries {:groupBy groupBy
|
||||||
:search search
|
:search search
|
||||||
:segmentMetadata segmentMetadata
|
:segmentMetadata segmentMetadata
|
||||||
|
|
Loading…
Reference in a new issue