Can't get Swagger UI to provide interface for arbitrary query params
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 35/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- clojure, openapi
- Lĩnh vực
- api, documentation
Hướng nghiên cứu
Bắt đầu với route GET "/find" và khai báo :query của nó, sau đó kiểm tra cách compojure-api chuyển các query map tùy ý thành mô tả OpenAPI/Swagger. Công việc được xem là hoàn tất khi Swagger UI có thể tạo ?a=1\u0026b=2 cho các key do requester chọn, trong khi handler hiện tại nhận được map; hãy xác minh bằng các ví dụ curl.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Library Version(s)
2.0.0-alpha31
Problem
Swagger can display a UI for setting dynamic query parameters, but I can't figure out how to do it with compojure-api.
I have a /find endpoint which needs to receive arbitrary query parameters.
E.g., Given /api/find?x=1&y=2&z=3 I want to receive a map {:x 1, :y 2, :3} somewhere in my handler. The keys are chosen by the requester.
(ns myns (:require [schema.core :as scm]))
(def myapp
(api ...
(GET "/find" [& fields]
:return scm/Any
(ok fields))
This works:
curl 'localhost:8080/api/runs/find?a=1&b=2'
{"a":"1","b":"2"}%
But the Swagger UI does not provide a way to set the query parameters:

I've tried variants of the route, providing
:query [fields scm/Any]
And many other things. I can't seem to find documentation for the arguments to :query. (Also, does anyone understand what :- is for?)
If I use a schema that starts with schema.core/maybe...
(scm/defschema QueryArgs (scm/maybe (scm/cond-pre scm/Num scm/Str scm/Bool scm/Keyword scm/Uuid)))
and provide this to :query...
(GET "/find" [& fields]
:return scm/Any
:query [fields QueryArgs]
(ok))
Swagger at least shows a box that allows me to assign several values inside another parameter, but it's not the one I want:

It produces a URL like this:
curl -X GET --header 'Accept: application/json' 'http://localhost:8080/api/runs/find?schemas=a%3D1&schemas=b%3D2'
But I want
curl -X GET --header 'Accept: application/json' 'http://localhost:8080/api/runs/find?a=1&b=2'
- Ngôn ngữ chính
- Clojure
- Star
- 1.1k
- Fork
- 145
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của metosin/compojure-api
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 45/100
metosin/compojure-api#489 ·
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 30/100
metosin/compojure-api#468 ·
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 20/100
metosin/compojure-api#467 ·
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
metosin/compojure-api#464 ·
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 30/100
metosin/compojure-api#463 · 3 bình luận ·
Tất cả issue của metosin/compojure-api
Issue tương tự
-
Permissioned transactions fetch each entity once per tx-step, producing huge permission-check queriesCó thể đã có người làm @verveguy đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 Nửa ngày Mức phù hợp với người mới 84/100
clojure-lsp/clojure-lsp#2502 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Sessions are never closedĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
Maintainer thường phản hồi trong vòng 1 ngày