Kata pengantar
Swagger, Makna Cina dari "Walet". Ini adalah kerangka API yang kuat, integrasinya sangat sederhana, tidak hanya memberikan tinjauan dokumentasi online,
Juga, dokumentasi online disediakan. Selain itu, kesombongan mudah membangun API bergaya RESTful.
Swagger adalah satu set alat sumber terbuka yang dibangun di sekitar spesifikasi OpenAPI untuk membantu merancang, membangun, mendokumentasikan, dan menggunakan API REST.
Sederhananya, tampaknya memfasilitasi pengujian antarmuka yang tenang di latar belakang dan mengimplementasikan pembaruan dinamis ketika kita berada di antarmuka latar belakang.
Setelah modifikasi, Swagger dapat secara otomatis memperbarui tanpa perlu mempertahankan antarmuka ini untuk pengujian seperti yang Anda pikirkan.
Swagger menunjukkan melalui anotasi bahwa antarmuka akan menghasilkan dokumen, termasuk nama antarmuka, metode permintaan, parameter, informasi pengembalian, dll.
<dependency> <GroupId> io.springfox </groupid> <ArTifactId> springfox-swagger2 </artifactid> <version> 2.7.0 </version> </dependency> <dependency> <roupid> IO.springfox </groupid> <ArtiFacTID> Springfox-springfox-ui.
Melalui anotasi @configuration, ini menunjukkan bahwa itu adalah kelas konfigurasi, dan @enableSwagger2 Mengaktifkan Swagger2.
Konfigurasi ApiInfo () Beberapa informasi dasar. APIS () menentukan bahwa paket yang dipindai akan menghasilkan dokumen.
Setelah membuat kacang map melalui fungsi Createrestapi, APIInfo () menggunakan informasi dasar API (informasi dasar ini akan ditampilkan di halaman dokumen). Fungsi Select () mengembalikan instance apiselectorBuilder untuk mengontrol antarmuka mana yang terpapar pada kesombongan untuk tampilan. Contoh ini menggunakan jalur paket yang dipindai yang ditentukan untuk menentukan. Swagger akan memindai semua API yang ditentukan oleh pengontrol di bawah paket dan menghasilkan konten dokumen (kecuali permintaan yang ditentukan oleh @Apiignore).
Paket com.lance.learn.springbootswagger.configuration; impor org.springframework.context.annotation.bean; impor org.springframework.context.annotation.configuration; impor springfox.documentation.builders.apiinfobuilder; springfox.documentation.builders.requesthandlerselectors; impor springfox.documentation.service.apiinfo; impor springfox.documentation.service.contact; import springfox.documentation.spi.documenttype; impor springfox.documentation.spring.pi.documentypype; impor springfox.documentation.spring.spring.dockinveTeveTeveTePinpin. springfox.documentation.swagger2.annotations.enableswagger2;/*** @author lance (zyh)* @funcher startup swagger kelas konfigurasi* @Date 2018-07-09 21:24*/ @configuration @enableswaggure, Anda swagger konfigurasi swagger {/** ** dll. * @return */@bean docket publik createrestfulapi () {return new docket (documentationType.swagger_2) .pathmapping ("/") .select () .apis (requesthandlerselectors.basepackage ("com.lance address.paths (pathselectors.any ()) .build (); } /** * Bangun fungsi informasi terperinci dari dokumen API, perhatikan anotasi mana yang mengacu pada * @return * /private apiinfo apiinfo () {return new APIInfobuilder () // page title.contactle ("Spring Boot Test untuk membangun API RESTFUL menggunakan swagger2") //create.contactace untuk membangun API RESTFUL (") //Create.contactact (" WNEWETLE. "http://www.cnblogs.com/zhangyinhua/", "[email protected]")) // Versi Number.Version ("1.0") // Deskripsi ("Deskripsi API") .build (); }} Deskripsi terutama berasal dari fungsi penamaan, dll., Dan tidak ramah pengguna. Kami biasanya perlu menambahkan beberapa instruksi untuk memperkaya konten dokumen.
Seperti yang ditunjukkan di bawah ini, kami menambahkan instruksi ke API melalui anotasi @apioperation, dan gunakan @ApiImplicitParams dan @ApIImplicitParam
Anotasi untuk menambahkan deskripsi ke parameter.
1) Contoh 1
Paket com.lance.learn.springbootswagger.controller; impor com.lance.learn.springbootswagger.bean.book; impor io.swagger.annotations.apiImplicitparam; import io.swagger.annotations.ApiImplicitparams; impor io.swagger.annotations io.swagger.annotations.Apioperation; impor org.springframework.web.bind.annotation. *; impor springfox.documentation.annotations.apiignore; import java.util. *;/** * @author lance (zyh) * @function * @date 2018-07 "/bookcurd") BookController kelas publik {peta <long, book> book = collections.synchronizedMap (hashmap baru <long, book> ()); @ApiOperation (value = "Get Book List", notes = "Get Book List") @RequestMapping (value = {""}, Method = requestMethod.get) Daftar publik <Book> getBook () {List <Book> Book = New ArrayList <> (Books.Values ()); buku kembali; } @ApiOperation (value = "Buat buku", notes = "buat buku") @apiImplicitParam (name = "book", value = "book detail entity", wajib = true, dataType = "book") @requestmapping (value = "", Method = requestMethod.post) Buku pos publik (@requestbody book. mengembalikan "kesuksesan"; } @ApiOperation(value="get detailed information on the book", notes="get detailed information based on the id of the url") @ApiImplicitParam(name = "id", value = "ID", required = true, dataType = "Long",paramType = "path") @RequestMapping(value="/{id}", method=RequestMethod.GET) public Book getBook(@PathVariable Long id) {return books.get (id); } @ApiOperation(value="Update information", notes="Specify update book information based on the url's id") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "Book ID", required = true, dataType = "Long",paramType = "path"), @ApiImplicitParam(name = "book", value = "book entity book", required = true, dataType = "BUKU")}) @RequestMapping (value = "/{id}", Method = requestMethod.put) String publik Putuser (@PathVariable Long ID, @RequestBody Book Book) {Book Book1 = books.get (id); book1.setname (book.getname ()); book1.setPrice (book.getPrice ()); books.put (id, book1); mengembalikan "kesuksesan"; } @ApiOperation(value="delete book", notes="Specify deletion of books based on the id of the url") @ApiImplicitParam(name = "id", value = "book ID", required = true, dataType = "Long",paramType = "path") @RequestMapping(value="/{id}", method=RequestMethod.DELETE) public String deleteUser (@pathvariable long id) {books.remove (id); mengembalikan "kesuksesan"; } @Apiignore // Gunakan anotasi ini untuk mengabaikan API @RequestMapping ini (value = "/hai", metode = requestMethod.get) public string jsontest () {return "hai you!"; }}2) Contoh 2
Paket com.lance.learn.springbootswagger.controller; import com.lance.learn.springbootswagger.bean.user; import io.swagger.annotations.apiImplicitparam; import io.swagger.Annotations.ApiImplicitparams; impor io.swagger.annotations. io.swagger.annotations.Apioperation; impor org.springframework.web.bind.annotation. *; impor java.util. *;/** * @author lance (zyh) * @function * @date 2018-07-09 22:00 */ @restcontroller {naillate 2018-07-09) Peta <long, user> user = collections.synchronizedMap (hashmap baru <long, user> ()); @ApiOperation (value = "Get User List", notes = "") @RequestMapping (value = {""}, method = requestMethod.get) Daftar publik <user> getUserList () {List <User> r = ArrayList baru <User> (Users.Values ()); mengembalikan r; } @ApiOperation(value="Create user", notes="Create user from User object") @ApiImplicitParam(name = "user", value = "User detailed entity user", required = true, dataType = "User") @RequestMapping(value="", method=RequestMethod.POST) public String postUser(@RequestBody User user) { users.put(user.getId(), user); mengembalikan "kesuksesan"; } @ApiOperation(value="get user details", notes="get user details based on the id of the url") @ApiImplicitParam(name = "id", value = "User ID", required = true, dataType = "Long") @RequestMapping(value="/{id}", method=RequestMethod.GET) public User getUser(@PathVariable Long id) { return users.get(id); } @ApiOperation(value="Update user details", notes="Specify update objects based on the id of the url, and update user details based on the transmitted user information") @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "User ID", required = true, dataType = "Long"), @ApiImplicitParam(name = "user", value = "User detailed entity Pengguna ", wajib = true, DataType =" user ")}) @RequestMapping (value ="/{id} ", Method = requestMethod.put) Public String Putuser (@PathVariable Long ID, @RequestBody User Pengguna) {user u = User baru (); Users.put (id, u); mengembalikan "kesuksesan"; } @ApiOperation (value = "Delete User", notes = "Tentukan objek Hapus sesuai dengan ID URL") @ApIImplicitParam (name = "id", value = "ID pengguna", wajib = true, DataType = "Long") @RequestMapping (value = "/{id}", Method = request.delele) @RequestMapping (value = "/{id}", Method = requestmethod.delel. Users.remove (ID); mengembalikan "kesuksesan"; }}https://github.com/lancetobigdata/springbootlearning/tree/develop/springboot-swagger
Meringkaskan
Di atas adalah seluruh konten artikel ini. Saya berharap konten artikel ini memiliki nilai referensi tertentu untuk studi atau pekerjaan semua orang. Jika Anda memiliki pertanyaan, Anda dapat meninggalkan pesan untuk berkomunikasi. Terima kasih atas dukungan Anda ke wulin.com.