問題タブ [compojure-api]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
clojure - compojure-api の body と body-params の違いは何ですか?
compojure-api で、リソースの API を指定する次の 2 つの方法に気付きました。
と
これら2つの違いは何ですか?一方と他方を使用することの意味は何ですか?
clojure - compojure-api ハンドラーでセッションにアクセスするにはどうすればよいですか?
次のように、compojure-api を使用します。
リングセッションにアクセスするにはどうすればよいですか?
clojure - compojure-api 戻り値スキーマまたはエラー
compojure-apireturn
を使用すると、スキーマを定義できます。
私の問題は、get-pizza
fn が 404 を返すとき、(リクエスタへの) 応答は、 404 がスキーマ{:status 404 :body {:message "Invalid id provided"}}
と一致しないということです。Pizza
ドキュメントは、複数の応答スキーマを提供できることを示していますが、get-pizza
それらのスキーマを利用するために fn が何を返す必要があるかは不明です。get-pizza
彼らの例では ring-http-response lib を使用して戻り値を生成していますが、私の戻り値 forとring-http-response 'not found' fn の間に違いはありません。
:responses
正直なところ、すべてのコードの重複をすでに予測できるため、可能であれば paramを使用したくありません。:return
スキーマを指定する前は、 get-pizza
fn で 404 を返してリクエスタに正しく渡すことができましたが、スキーマを追加すると、それができなくなりました。戻り値を一般的に定義されたエラーマップにすることを検討:return (s/one Pizza Error)
しましたが、理論上すべての呼び出しが 500 を返す可能性がある場合、すべてのルートに対してError
これを行う理由がわかりません。
注: param の使用に切り替えた理由:return
は、生成された swagger-ui ドキュメントがより見やすく、理解しやすくなるためです。
clojure - 引数を取らず、定数値を返すリテラル関数を作成するにはどうすればよいですか?
私は Clojure を学ぼうとしていますが、リテラル関数の構文で詰まっています。に相当するリテラル関数が何であるかわかりません(defn fourteen [] 14)
。
これは、無名関数が clojure で期待する引数の数は何ですか? 、しかし多分そうであり、私はそれを認識する経験を持っていません.
(literal-14)
呼び出しが機能するようにするには、literal-14 を定義する方法、または定義できますか?
clojure - compojure-api を使用したオプションのクエリ パラメータ (デフォルト値あり)
を使用するときに、オプションのクエリ パラメータをデフォルト値で宣言する適切な方法は何compojure-api
ですか?
私のルート要素の1つは次のとおりです(これを読んだ後):
最初はブール値のパラメーターが他のパラメーター (例: ) として定義されていましたが、生成された Swagger UI はそれらをデフォルトの値をshow-future Boolean
持つコンボボックスとして提示しました。true
現在のフォームでは、UI にはオプションが選択されていないコンボボックスが表示されます。同じことがテナントにも起こります。
副次的な質問: Swagger で生成された UI を使用してリクエストを送信すると、エラーが返されます: "levels": "(not (instance? java.lang.Integer \"2\"))"
. 何故ですか?ライブラリは、文字列値を API によって宣言された指定された型に強制/変換することになっていませんか?
前もって感謝します。