Saya menggunakan Swagger untuk menghasilkan dokumentasi REST API saya. Berdasarkan apa yang tertulis, UI Swagger tidak menawarkan dukungan untuk autentikasi dasar (berbeda dengan editor online). Masalah saya adalah salah satu API saya adalah POST yang memerlukan otentikasi intisari (bahkan bukan otentikasi dasar).
Solusi yang mungkin saya temukan adalah menambahkan header otentikasi user:pass tetap dalam permintaan melalui kode javascript. Hal ini dapat dilakukan dengan mudah berdasarkan dokumentasi UI Swagger (lihat Parameter Header Khusus). Saya melaporkan baris kode yang dituduhkan:
swaggerUi.api.clientAuthorizations.add("key", new SwaggerClient.ApiKeyAuthorization("Authorization", "XXXX", "header"));
Sayangnya itu tidak berhasil. Hasil bidang swaggerUi.api
tidak diinisialisasi (null) setelah saya menginisialisasi objek SwaggerUi, dan sebagai konsekuensinya swaggerUi.api.clientAuthorizations
tidak terdefinisi. Saya mencoba menginisialisasi bidang tersebut dengan cara yang berbeda, selalu gagal. Saya juga mencoba panggilan serupa ke API yang saya temukan di utas yang membahas topik ini, tetapi tidak ada satupun yang berhasil. Adakah yang punya ide tentang itu? Dokumentasinya tidak terlalu jelas mengenai hal itu.
Untuk kelengkapannya, saya laporkan cuplikan js tempat saya menginisialisasi 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,
});