ฉันใช้ Swagger เพื่อสร้างเอกสารประกอบของ REST API ของฉัน ตามที่เขียนไว้ Swagger UI ไม่รองรับการตรวจสอบสิทธิ์ขั้นพื้นฐาน (แตกต่างจาก ตัวแก้ไขออนไลน์) ปัญหาของฉันคือหนึ่งใน API ของฉันคือ POST ที่ต้องมีการรับรองความถูกต้องแบบไดเจสต์ (ไม่ใช่แบบพื้นฐานด้วยซ้ำ)
วิธีแก้ปัญหาที่เป็นไปได้ที่ฉันพบคือการเพิ่มผู้ใช้คงที่: ส่วนหัวการตรวจสอบสิทธิ์ผ่านในคำขอผ่านรหัสจาวาสคริปต์ ซึ่งควรทำได้อย่างง่ายดายตามเอกสารประกอบของ Swagger UI (ดู พารามิเตอร์ส่วนหัวที่กำหนดเอง) ฉันรายงานบรรทัดรหัสที่ถูกกล่าวหา:
swaggerUi.api.clientAuthorizations.add("key", new SwaggerClient.ApiKeyAuthorization("Authorization", "XXXX", "header"));
น่าเสียดายที่มันใช้งานไม่ได้ ฟิลด์ swaggerUi.api
ส่งผลให้ไม่ได้เตรียมใช้งาน (null) หลังจากที่ฉันเริ่มต้นวัตถุ SwaggerUi และผลที่ตามมาคือ swaggerUi.api.clientAuthorizations
is ไม่ได้กำหนดไว้ ฉันพยายามเริ่มต้นฟิลด์ดังกล่าวด้วยวิธีที่ต่างออกไป แต่ล้มเหลวทุกครั้ง ฉันลองใช้การเรียก API ที่คล้ายกันที่ฉันพบในกระทู้ที่พูดถึงหัวข้อนี้ แต่ก็ไม่ได้ผลเลย ไม่มีใครมีความคิดเกี่ยวกับเรื่องนี้? เอกสารไม่ชัดเจนเกี่ยวกับเรื่องนั้นโดยเฉพาะ
เพื่อความสมบูรณ์ ฉันรายงานตัวอย่างข้อมูล js ที่ฉันเริ่มต้น 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,
});