compojure-api
kullanırken varsayılan değerle isteğe bağlı sorgu parametresini bildirmenin uygun yolu nedir? Benim rota elemanlarınınİsteğe bağlı sorgu parametreleri (varsayılan değerle) componentjure-api ile
One (this okuduktan sonra) şu şekildedir: İlk diğerleri olarak tanımlanan (örn show-future Boolean
) fakat üretilen Swagger UI bir combobox olarak takdim boole params anda
(GET "/:id/descendants" [id]
:return [d/CategoryTreeElement]
:path-params [id :- Long]
:query-params [context-type :- d/ContextType
levels :- Integer
{tenant :- d/Tenant :DEF_TENANT}
{show-future :- Boolean false}
{show-expired :- Boolean false}
{show-suppressed :- Boolean false}
:summary "Fetch category descendants"
(ok ...))
varsayılan olarak true
değeriyle. Mevcut formda UI, hiçbir seçenek seçilmemiş bir açılan kutuyu gösterir. Aynı kiracı ile olur.
Tek taraflı soru: Bir istek göndermek için Swagger'ın oluşturduğu UI'yi kullandığımda ve hata döndüğünde: "levels": "(not (instance? java.lang.Integer \"2\"))"
. Neden? Kütüphane, dize değerlerini API tarafından bildirilen belirlenmiş türlere zorlamak/dönüştürmek değil mi?
Şimdiden teşekkürler.
Cevabınız için teşekkürler. Yani, boole isteğe bağlı parametre hakkında, varsayılan değer UI'de seçilmediğinden, varsayılan bir değer tanımladığım fark etmez. –
@ matheus.emm İsteğe bağlı olmasını istiyorsanız, varsayılan parametre değerini belirtmeniz gerekir. Aksi takdirde, Swagger UI, değerlerden birini ('true' veya' false') seçmenizi zorlar ve eğer bu sorgu parametresi için bir değer belirtmeden istek gönderirseniz, şema doğrulama hatası alırsınız. Varsayılan değer gereklidir, böylece parametreniz arayan tarafından sağlanmamışsa, geçerli bir değer atanır (şemanıza göre). –
@ matheus.emm “Tamsayı” zorlama işleminin nasıl yapılacağı bilgisiyle cevabı güncelledim. –