Can't get Swagger UI to provide interface for arbitrary query params
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- clojure, openapi
- Ambito
- api, documentation
Direzione di ricerca
Inizia con la route GET "/find" e la relativa dichiarazione :query, quindi esamina come compojure-api trasformi mappe di query arbitrarie nella descrizione OpenAPI/Swagger. Il lavoro è completato quando Swagger UI può emettere ?a=1\u0026b=2 per chiavi scelte dal requester, mentre l'handler esistente riceve la mappa; verifica il risultato con gli esempi curl.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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'
- Lingua principale
- Clojure
- Stelle
- 1.1k
- Fork
- 145
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di metosin/compojure-api
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
metosin/compojure-api#489 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 30/100
metosin/compojure-api#468 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
metosin/compojure-api#467 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
metosin/compojure-api#464 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 30/100
metosin/compojure-api#463 · 3 commenti ·
Tutte le issue di metosin/compojure-api
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
I maintainer di solito rispondono entro 1 giorno
-
.Needs Triage .Run Repro Bot .Team/UXWest Priority:P3 Type:Bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
metabase/metabase#84325 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
NoahTheDuke/splint#56 ·
-
Permissioned transactions fetch each entity once per tx-step, producing huge permission-check queriesForse già presa @verveguy l’ha presa 1 giorno fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 Mezza giornata Idoneità per principianti 84/100
clojure-lsp/clojure-lsp#2502 ·
I maintainer di solito rispondono entro 1 giorno