Saya memiliki aplikasi C # ASP.NET WebAPI dengan dokumentasi API yang dihasilkan secara otomatis menggunakan Swashbuckle . Saya ingin dapat menghilangkan metode tertentu dari dokumentasi tetapi saya tidak bisa menemukan cara untuk memberitahu Swagger untuk tidak memasukkan mereka dalam output UI Swagger.
Saya rasa itu ada hubungannya dengan menambahkan model atau skema filter tetapi tidak jelas apa yang harus dilakukan dan dokumentasi hanya tampaknya memberikan contoh bagaimana memodifikasi output untuk suatu metode, tidak menghapusnya sepenuhnya dari output.
Terima kasih sebelumnya.
Seseorang memposting solusinya di github jadi saya akan menempelkannya di sini. Semua kredit jatuh padanya. https://github.com/domaindrivendev/Swashbuckle/issues/153#issuecomment-213342771
Buat dulu kelas atribut
Kemudian buat kelas Filter Dokumen
Kemudian di kelas Konfigurasi Sombong, tambahkan filter dokumen itu
Langkah terakhir adalah menambahkan atribut [HideInDocsAttribute] pada Controller atau Metode yang Anda tidak ingin Swashbuckle membuat dokumentasi.
sumber
Anda dapat menghapus "operasi" dari dokumen kesombongan setelah dibuat dengan filter dokumen - cukup setel kata kerjanya ke
null
(meskipun, mungkin ada cara lain untuk melakukannya juga)Sampel berikut hanya memungkinkan
GET
kata kerja - dan diambil dari masalah ini .dan dalam konfigurasi kesombongan Anda:
sumber
path.get = null;
- sebagai hasilnya path tersebut akan tetap disertakan dalam file Swagger tetapi hanya tanpa perincian. Mungkin lebih baik untuk memasukkanApiExplorerSettingsAttribute
jawaban Anda seperti yang Anda sebutkan di balasan asli Anda di GitHub. Menggunakan ApiExplorerSettings juga dapat menghindari mengetikkan informasi agar tidak ditambahkan ke daftar file Swaggerschemes
.Saya lebih suka menghapus entri kamus untuk item jalur sepenuhnya:
Dengan pendekatan ini, Anda tidak akan mendapatkan item "kosong" dalam definisi swagger.json yang dihasilkan.
sumber
Buat filter
Buat atribut
Terapkan di startup.cs
Tambahkan atribut [SwaggerTag] ke metode dan pengontrol yang ingin Anda sertakan dalam Swagger JSON
sumber
Dapat membantu seseorang tetapi selama pengembangan (debugging) kami ingin mengekspos seluruh Pengendali dan / atau Tindakan dan kemudian menyembunyikan ini selama produksi (rilis rilis)
sumber
Berdasarkan jawaban @spottedmahns . Tugas saya adalah sebaliknya. Tampilkan hanya yang diizinkan.
Kerangka Kerja: .NetCore 2.1; Sombong: 3.0.0
Atribut ditambahkan
Dan mengimplementasikan custom IDocumentFilter
Kode Konfigurasi Layanan :
sumber
tambahkan satu baris SwaggerConfig c.DocumentFilter ();
sumber
Tambahkan ini di atas Metode Anda yang ingin Anda hilangkan-
sumber