問題タブ [reitit]
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.
authentication - Swagger UI で認証ヘッダーを提供するにはどうすればよいですか?
Luminus を reitit と swagger-ui と共に使用して、Luminus API を試すためのページを生成しました。API リクエストの本文を入力して送信するだけで、API をテストできます。
これで、バディを使用して認証を追加しました。API では、リクエストのヘッダーでトークンを渡す必要があります。そうしないと、リクエストが禁止されているとして拒否されます。
JWT トークン文字列を入力して API をテストできるように、"Authorization" ヘッダー フィールドを魔法のように UI に表示しようとしています。これは、reitit を使用して API を作成する人にとって非常に一般的な要件であるに違いありませんが、その方法がわかりません。私は周りを検索し、テキストを含むこの reitit issues pageを見つけました...
ヘッダー パラメータは、Ring が提供するものと正確に一致する小文字の文字列 {:headers {"authorization" string?}} として宣言されます。(ドキュメント用に HTTP-Header-Case にすることもできます。)
...そして、以下のセットアップを提案します...
それをしても、認証する方法がありませんでした。それで、私はこの議論を見つけて、上記のルートの :summary と :parameters の後に以下を追加してルートを編集しました...
...これは正しい軌道に乗っているように見えますが、認証ヘッダーにトークンを入力する方法がまだありません。
私が言ったように、すべてがcurlで機能しています...そのswaggerは認証ヘッダーを追加する方法を示していません。このシナリオで Swagger UI を動作させる方法を知っている人はいますか?
reitit がこれをサポートしていない場合、認証されたリクエストに Swagger UI をどのように使用していますか?
どんな助けでも大歓迎です!
clojurescript - Reagent で Reitit ルートを編集するにはどうすればよいですか?
デフォルトの試薬テンプレートで作成されたルートは次のようになります。
1 つのパス (以下の「/about」から「/test」) を変更すると、機能しなくなるのはなぜですか? ルーティングを動かしている何かが他にあるに違いありませんが、何が原因かわかりません。
これはデフォルトの試薬テンプレート (新しい試薬を追加...) であり、コード内で他に何も変更していません。どんな助けでも大歓迎です。
編集 - この関数の repl で少し調べた追加の詳細 (デフォルトのテンプレートから):
私にはすべて問題ないように見えます。実際、repl で以下の手順を実行すると、ブラウザーは正しいページに正常に移動しました。ただし、まだ URL を直接入力することはできません。
clojure - Reititでオリジンヘッダーパラメータを必須として設定するにはどうすればよいですか?
Pedestal と Reitit を使用した Clojure アプリケーションがあり、origin ヘッダー パラメータを必須にする必要があります。
しかし、自分のスキーマを入れると、リクエストは例外をスローします。
例外:
:errors {:origin missing-required-key}
リクエスト
CURL リクエストは機能しますが、問題は GET メソッドを使用した Swagger UI のみにあります。
get メソッドの Swagger は、cors の攻撃を避けるためにオリジン ヘッダー パラメータを送信しないようです。
これを回避できますか?
ご協力いただきありがとうございます
clojure - スキーマを kabab-case から camelCase に変換するために、compojure-api で Swagger のミドルウェアを実装する方法
アプリケーションは、以下のようなスキーマに kabab-case キー形式を使用します
しかし、swagger ドキュメントの場合、以下のようにキャメルケースのスキーマが必要です
スキーマを kabab-case から camelCase に変換できるように、swagger のミドルウェアを実装する方法はありますか? どうすればこれを達成できるか提案してください。
私の現在のコードは、APIの動的swaggerドキュメント生成のために以下のようになります
ルーティングには compojure-api が提供する swagger を使用しています。
reititを使用して私の要件を実装できます。reititを使用してこれを達成する方法のサンプル プロジェクト rest-apiもあります。しかし、今はルーティング用の新しいライブラリにアップグレードしたくないので、compojure-api を使用して同様のことを達成したいと考えています。