日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Springboot 集成 Swagger

發布時間:2024/8/23 javascript 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Springboot 集成 Swagger 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、問題描述

  隨著互聯網技術的發展,現在的網站架構基本都由原來的后端渲染,變成了:前端渲染、先后端分離的形態,而且前端技術和后端技術在各自的道路上越走越遠。?前端和后端的唯一聯系,變成了API接口;API文檔變成了前后端開發人員聯系的紐帶,變得越來越重要,swagger就是一款讓你更好的書寫API文檔的框架,而且swagger可以完全模擬http請求,入參出參和實際情況差別幾乎為零。

  沒有API文檔工具之前,大家都是手寫API文檔的(維護起來相當困難),在什么地方書寫的都有,有在confluence上寫的,有在對應的項目目錄下readme.md上寫的,每個公司都有每個公司的玩法,無所謂好壞。但是能稱之為“框架”的,估計也只有swagger了

2、操作步驟

?  2.1配置pom.xml

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

<parent>

???????<groupId>org.springframework.boot</groupId>

???????<artifactId>spring-boot-starter-parent</artifactId>

???????<version>1.4.0.RELEASE</version>

???</parent>

?

??<properties>

????<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

??</properties>

?

??<dependencies>

????<!-- junit -->

????<dependency>

??????<groupId>junit</groupId>

??????<artifactId>junit</artifactId>

??????<scope>test</scope>

????</dependency>

????<!-- spring boot -->

????<dependency>

??????????<groupId>org.springframework.boot</groupId>

??????????<artifactId>spring-boot-starter-web</artifactId>

????</dependency>

????<!-- swagger -->

????<dependency>

????????<groupId>io.springfox</groupId>

????????<artifactId>springfox-swagger2</artifactId>

????????<version>2.5.0</version>

????</dependency>

????<!-- swagger-ui -->

????<dependency>

????????<groupId>io.springfox</groupId>

????????<artifactId>springfox-swagger-ui</artifactId>

????????<version>2.5.0</version>

????</dependency>

??</dependencies>

  ?2.2啟動類

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

package?com.mao.swagger;

?

import?org.springframework.boot.SpringApplication;

import?org.springframework.boot.autoconfigure.EnableAutoConfiguration;

import?org.springframework.boot.autoconfigure.SpringBootApplication;

?

/**

?* Hello world!

?*

?*/

@EnableAutoConfiguration

@SpringBootApplication(scanBasePackages =?"com.mao")

public?class?DemoApp {

?

????public?static?void?main(String[] args)?throws?Exception {

????????SpringApplication.run(DemoApp.class, args);

????}

?????

}

   ?2.3配置config

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

package?com.mao.swagger.config;

?

import?org.springframework.context.annotation.Bean;

import?org.springframework.context.annotation.Configuration;

?

import?io.swagger.annotations.ApiOperation;

import?springfox.documentation.builders.RequestHandlerSelectors;

import?springfox.documentation.spi.DocumentationType;

import?springfox.documentation.spring.web.plugins.Docket;

import?springfox.documentation.swagger2.annotations.EnableSwagger2;

?

@Configuration

@EnableSwagger2

public?class?SwaggerConfig {

?????

????@Bean

????public?Docket swaggerSpringMvcPlugin() {

????????return?new?Docket(DocumentationType.SWAGGER_2).select().apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)).build();

????}

?????

}

 2.4配置controller

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

package?com.mao.swagger.controller;

?

import?org.springframework.http.HttpStatus;

import?org.springframework.http.MediaType;

import?org.springframework.web.bind.annotation.RequestBody;

import?org.springframework.web.bind.annotation.RequestMapping;

import?org.springframework.web.bind.annotation.RequestMethod;

import?org.springframework.web.bind.annotation.RequestParam;

import?org.springframework.web.bind.annotation.RestController;

?

import?com.mao.swagger.beans.ResObject;

import?com.mao.swagger.beans.User;

?

import?io.swagger.annotations.Api;

import?io.swagger.annotations.ApiImplicitParam;

import?io.swagger.annotations.ApiImplicitParams;

import?io.swagger.annotations.ApiOperation;

?

/**

?* Hello world!

?*

?*/

@Api(description =?"用戶接口")

@RestController

@RequestMapping("/demoController")

public?class?DemoController {

?

????@ApiOperation(value =?"新增用戶"?,? notes="新增注冊")

????@RequestMapping(value="/createUser",method=RequestMethod.POST,consumes= MediaType.APPLICATION_JSON_VALUE)

????public?ResObject createUser(@RequestBody?User user){

????????System.out.println("createUser:::"+user.toString());

????????return?new?ResObject(HttpStatus.OK.value(),?"新增成功.");

????}

?

????@ApiOperation(value =?"修改用戶"?,? notes="修改用戶")

????@RequestMapping(value="/updateUser",method=RequestMethod.POST,consumes= MediaType.APPLICATION_JSON_VALUE)

????public?ResObject updateUser(@RequestBody?User user){

????????System.out.println("updateUser:::"+user.toString());

????????return?new?ResObject(HttpStatus.OK.value(),?"修改成功.");

????}

?

????@ApiOperation(value =?"刪除用戶"?,? notes="刪除用戶")

????@ApiImplicitParams({

????????@ApiImplicitParam(name =?"userId", value =?"用戶標識", required =?true, paramType =?"query", dataType =?"String")

????})

????@RequestMapping(value="/deleteUser",method=RequestMethod.DELETE)

????public?ResObject deleteUser(@RequestParam("userId") String userId){

????????System.out.println("deleteUser:::"+userId);

????????return?new?ResObject(HttpStatus.OK.value(),?"刪除成功.");

????}

?

????@ApiOperation(value =?"查詢用戶"?,? notes="查詢用戶")

????@ApiImplicitParams({

????????@ApiImplicitParam(name =?"userId", value =?"用戶標識", required =?true, paramType =?"query", dataType =?"String")

????})

????@RequestMapping(value="/queryUser",method=RequestMethod.GET)

????public?ResObject queryUser(@RequestParam("userId") String userId){

????????System.out.println("queryUser:::"+userId);

????????User user =?new?User(userId,?"張三",?"******",?"mao2080@sina.com");

????????return?new?ResObject(HttpStatus.OK.value(), user);

????}

?

}

3、效果展示

按照上面的啟動之后訪問:http://localhost:8080/swagger-ui.html ?發現找不到接口

后面排查是因為沒有添加掃描包

重啟之后再刷新即可

點擊demo-controller可以看到詳細接口

點擊具體接口可以看到具體參數

點擊try it out! 可以測試接口。

后臺打印日志

4、附件下載

swagger-demo.zip

5、參考網站

https://blog.csdn.net/i6448038/article/details/77622977

https://blog.csdn.net/blackmambaprogrammer/article/details/72354007

6、推廣閱讀

Sagger常用參數用法

?

轉載自:http://www.cnblogs.com/mao2080/

總結

以上是生活随笔為你收集整理的Springboot 集成 Swagger的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。