私はSwaggerを使用してREST APIのドキュメントを作成しています。 Swagger UIは基本的な認証をサポートしていません(online editorとは異なります)。私の問題は、私のAPIの1つがダイジェスト(基本的ではない)認証を必要とするPOSTだということです。ダイジェスト認証を使用するSwagger UI
解決方法可能性のある解決方法は、固定ユーザーを追加することです:リクエストに認証コードを渡し、javascriptコードを使用します。これは、Swagger UI documentation(Custom Header Parametersを参照)に従って簡単に行う必要があります。私は、有罪判決を受けたコード行を報告します:
swaggerUi.api.clientAuthorizations.add("key", new SwaggerClient.ApiKeyAuthorization("Authorization", "XXXX", "header"));
残念ながらそれは動作しません。 SwaggerUiオブジェクトを初期化した後にswaggerUi.api
フィールドの結果が初期化されず(null)、結果としてswaggerUi.api.clientAuthorizations
は未定義です。私はそのようなフィールドを異なる方法で初期化しようとしましたが、毎回失敗しました。私はこのトピックについて議論しているスレッドで見つけたAPIにも同様の呼び出しを試みましたが、どれもうまくいきませんでした。誰かがそれについての考えを持っていますか?そのことに関する文書は特に明確ではない。完全のために
、私はSwaggerClient.PasswordAuthorization
代わりのSwaggerClient.ApiKeyAuthorization
使用してみてくださいSwagger UI
var urlPush = "./doc_push.yaml";
window.swaggerUiPush = new SwaggerUi({
url: urlPush,
dom_id: "swagger-ui-container-push",
supportedSubmitMethods: ['get', 'post', 'put', 'delete', 'patch'],
onFailure: function(data) {
log("Unable to Load SwaggerUI");
},
docExpansion: "list",
jsonEditor: false,
defaultModelRendering: 'model',
showRequestHeaders: false,
});
を:基本的なXXXXXXX "(注意してください、新しいバージョンは、 '基本'フィールドが存在することを望んでいません)。問題は、ダイジェスト認証の問題(ユーザーのMD%:realm:passを必要とする)ではなく、基本認証の問題を解決するように思われることです。 – McKracken