Swagger: Hapus properti kelas dari nilai contoh parameter

Saya menggunakan Swagger untuk mendokumentasikan REST API.

Saya memiliki kelas seperti ini:

public class Source{ 
    private String url;
    private String category;
    private String label;
    ... 
}

Saat ini saya menggunakan @ApiImplicitParam untuk menyetel tipe data ke Source.class, tetapi saya memiliki beberapa permintaan POST yang mendapatkan JSON sebagai parameter isi dengan, katakanlah, satu variabel, misalnya:

{"label": "labelA"}

Karena kumpulan dataType sebelumnya, nilai contoh yang ditampilkan oleh UI Swagger adalah keseluruhan Source.class, kira-kira seperti ini:

{
    "url": "string",
    "category": "string",
    "label": "string",
    ...
}

Bisakah saya memotong nilai contoh yang ditampilkan oleh Swagger UI untuk setiap permintaan tersebut? Maksud saya, permintaan getSourceFromUrl() harus mendapatkan JSON yang hanya berisi bidang url, dan contohnya harus menampilkan persis seperti ini dan bukan JSON Source.class lengkap.

Terima kasih sebelumnya!

PEMBARUAN

Saya menggunakan JAX-RS. Tolong, minta saya masukan lebih lanjut jika diperlukan.


person cr1ng3    schedule 26.07.2016    source sumber
comment
Kemungkinan duplikat dari Kecualikan Model atau properti dari respons swagger   -  person Helen    schedule 23.01.2018


Jawaban (2)


Jika Anda menggunakan springfox-swagger2 , ada anotasi @ApiModelProperty yang melakukan hal ini.

Contoh:

@ApiModelProperty(required = false, hidden = true)
private String label;
person WannaBeGeek    schedule 26.07.2016
comment
Terima kasih banyak atas tanggapannya. Masalah saya adalah saya memiliki beberapa titik akhir dan saya ingin menggunakan kelas yang sama sebagai nilai contoh parameter untuk semuanya tetapi dengan kumpulan properti kelas yang berbeda. Saya menggunakan JAX-RS (saya akan memperbarui posting saya). P.S.: Saya yakin @ApiModelProperty dapat digunakan di dalam kelas dan ini akan memengaruhi semua titik akhir yang menggunakan kelas ini sebagai nilai contoh. Apakah aku salah? - person cr1ng3; 26.07.2016

Untuk saat ini, Anda tidak dapat melakukan hal seperti itu. Anda harus membuat kelas yang berbeda untuk setiap kasus.

Lihat di github swagger-core: https://github.com/swagger-api/swagger-core/issues/1863#issuecomment-237339565

person cr1ng3    schedule 10.08.2016