問題タブ [plumatic-schema]
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 戻り値スキーマまたはエラー
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 - (Prismatic) Plumatic スキーマ ドキュメント
clojure でのタイピングとドキュメンテーションにプリズマティック/スキーマの使用を検討してきましたが、完全なドキュメンテーションを見つけるのに苦労しました。github の readme には、役立つ基本的な使用法に関する情報がいくつか記載されていますが、多くの未解決の問題が残されています (たとえば、(s/one s/Str "s") で "s" 引数が必要なのはなぜですか)。プリズマティック スキーマの完全なチュートリアルまたはドキュメント ソースを知っている人はいますか?
clojure - Clojure のスキーマ内のベクトルを特にチェックする
私のプログラムでは、次のような一種の行列を (ベクトルのベクトルとして) 使用しています。
次のように宣言されたスキーマがあります。
私がやりたいことは、スキーマをさらに制限して、マトリックスが clojure.lang.PersistentVector のベクトル、または (可能であれば) さらに良い、ランダム アクセスをサポートする構造であることを確認することです。スキーマで [ ] を使用するとシーケンスのみがテストされるように思われるため、リストのリストもスキーマに合格します。
この制約をスキーマで表現するにはどうすればよいですか?
clojure - Clojure のポリモーフィック スキーマ
ポリモーフィックなスキーマ/型を作成したいと考えており、ベスト プラクティスに興味があります。次の 2 つの例では、イベント、または(たとえば、それぞれ 15 日ごと、または最初の月曜日ごと)Frequency
を繰り返すことができるスキーマを作成できます。monthly by day of month
monthly by day of week
最初のものは実験的な抽象マップを使用してこれを達成しますが、その構文は扱いにくいです (IMO)。さらに、実験的なパッケージに含まれていることは、少し心配です。
2 番目のものは を使用しますが、これはfrom a tos/conditional
の値を簡単に強制できないという問題があります。これは、REST API または JSON を処理するときに役立ちます。(一方、これには最適です)。type
string
keyword
s/eq
一般的なケースでは、次のいずれか、または 3 番目のオプションのいずれかが伝達のベスト プラクティスType A is one of Types #{B C D ...}
ですか。
2 つのオプション:
あまり役に立たない同様の質問:
if-statement - clojure スキーマの検証
Clojure Prismatic スキーマの検証に問題があります。これがコードです。
コードを使用して検証しようとしています:
しかし、それは私にエラーを投げています:
これは、検証しようとしている非常に基本的なコードです。私はclojureに非常に慣れていませんが、まだその基本を学ぼうとしています。
ありがとう、
clojure - Prismatic SchemaとCore.Typedを同時に使用していますか?
私はこれら2つのライブラリを試しています。どちらか一方を単独で使用することはできますが、両方を同時に (つまり、同じファイルで) 使用しようとすると、非常に大きなコンソール エラーが発生し、多数のプリズマティック スキーマ ライブラリ関数が適切に機能していないことを訴えます。注釈付き。core.typed にスキーマを無視させる方法はありますか?