2016-12-04 14 views
0

のカスタム認証ヘッダーを追加できるかどうか疑問に思っていましたか? django-rest-swaggerが作成したドキュメントの「試してみてください」セクション?私は自分のREST API用にカスタムトークン認証を設定しており、「試してみてください!」によって生成されたリクエストごとにカスタムヘッダを指定するだけです。ボタン。Django Rest Swagger「試してみてください」セクションのカスタム認証ヘッダー

enter image description here

答えて

4

わかりましたので、私は最終的に自分自身の問題を解決しました。ナビゲーションバーどこに(extra_navブロックを参照してください)私は、入力ボックスを追加して、基本的に

{% extends "rest_framework_swagger/base.html" %} 
{% block extra_nav %} 
    <input type="text" id="auth_token" placeholder="Auth Token" /> 
    <input class="submit" type="submit" value="Submit" data-sw-translate=""> 
{% endblock %} 

{% block extra_scripts %} 
    <script> 
     var element = document.querySelector(("#api_selector")); 
     element.addEventListener("submit", function(event) { 
     event.preventDefault(); 
     var token = $("#auth_token").val(); 
       window.swaggerUi.api.clientAuthorizations.add("Authorization", new window.SwaggerClient.ApiKeyAuthorization("Authorization", token, "header")); 
     alert("authorization added: " + token); 
}); 

    </script> 
{% endblock %} 

:基本的に、私は私のカスタムのいずれかで、デフォルトのindex.htmlを上書きしてしまった(rest_framework_swagger/index.htmlとしての私自身のtemplatesディレクトリにこれを追加しました)ユーザーは単に自分のカスタムヘッダー値(私の場合は認証ヘッダー)を配置するだけです。ユーザがsubmitボタンをクリックすると、私のカスタムスクリプト(extra_scriptsを参照)が実行され、フォームの送信を防ぎます(django-rest-swaggerは、入力ボックスをIDがapi_selectorのフォームに配置してから、ヘッダここから、いずれかのボタンは現在、余分なカスタムリクエストヘッダを持つことになります「それを試してみる」

enter image description here

デフォルトのジャンゴ - 静止闊歩UIを上書きする方法の詳細については:。。http://django-rest-swagger.readthedocs.io/en/latest/customization/
詳細はオーバーライドテンプレートに関する情報:Override templates of external app in Django

+1

これらのテンプレートを保存する場所を少し明確にする。あなたの最初のアプリが 'コア'と呼ばれるとしましょう。次に、この場所にテンプレートを追加する必要があります。 'core/templates/rest_framework_swagger/index.html'。その後、 'core/settings/base.py'を次のように変更して、新たに追加したテンプレートを表示させます: ' TEMPLATES = [{'DIRS':[os.path.join(BASE_DIR、 'templates')]}] ' –

関連する問題