mirror of
https://github.com/metosin/reitit.git
synced 2025-12-17 16:31:11 +00:00
upload & download example
This commit is contained in:
parent
9fdb495ab2
commit
79d3191702
2 changed files with 25 additions and 2 deletions
BIN
examples/ring-swagger/resources/reitit.png
Normal file
BIN
examples/ring-swagger/resources/reitit.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 494 KiB |
|
|
@ -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))))
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue