upload & download example

This commit is contained in:
Tommi Reiman 2018-07-30 11:10:46 +03:00
parent 9fdb495ab2
commit 79d3191702
2 changed files with 25 additions and 2 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 494 KiB

View file

@ -6,9 +6,11 @@
[reitit.coercion.spec] [reitit.coercion.spec]
[reitit.ring.middleware.muuntaja :as muuntaja] [reitit.ring.middleware.muuntaja :as muuntaja]
[reitit.ring.middleware.exception :as exception] [reitit.ring.middleware.exception :as exception]
[reitit.ring.middleware.multipart :as multipart]
[ring.middleware.params :as params] [ring.middleware.params :as params]
[ring.adapter.jetty :as jetty] [ring.adapter.jetty :as jetty]
[muuntaja.core :as m])) [muuntaja.core :as m]
[clojure.java.io :as io]))
(def app (def app
(ring/ring-handler (ring/ring-handler
@ -18,6 +20,25 @@
:swagger {:info {:title "my-api"}} :swagger {:info {:title "my-api"}}
:handler (swagger/create-swagger-handler)}}] :handler (swagger/create-swagger-handler)}}]
["/files"
{:swagger {:tags ["files"]}}
["/upload"
{:post {:summary "upload a file"
:parameters {:multipart {:file multipart/temp-file-part}}
:responses {200 {:body {:file multipart/temp-file-part}}}
:handler (fn [{{{:keys [file]} :multipart} :parameters}]
{:status 200
:body {:file file}})}}]
["/download"
{:get {:summary "downloads a file"
:swagger {:produces ["image/png"]}
:handler (fn [_]
{:status 200
:headers {"Content-Type" "image/png"}
:body (io/input-stream (io/resource "reitit.png"))})}}]]
["/math" ["/math"
{:swagger {:tags ["math"]}} {:swagger {:tags ["math"]}}
@ -50,7 +71,9 @@
;; coercing response bodys ;; coercing response bodys
coercion/coerce-response-middleware coercion/coerce-response-middleware
;; coercing request parameters ;; coercing request parameters
coercion/coerce-request-middleware]}}) coercion/coerce-request-middleware
;; multipart
multipart/multipart-middleware]}})
(ring/routes (ring/routes
(swagger-ui/create-swagger-ui-handler {:path "/"}) (swagger-ui/create-swagger-ui-handler {:path "/"})
(ring/create-default-handler)))) (ring/create-default-handler))))