首页 > 学院 > 开发设计 > 正文

SpringBoot集成swagger以及swagger的运用

2019-11-06 08:06:34
字体:
来源:转载
供稿:网友

swagget需要的包:

<dependency>    <groupId>io.sPRingfox</groupId>    <artifactId>springfox-swagger-ui</artifactId>    <version>2.5.0</version></dependency><dependency>    <groupId>io.springfox</groupId>    <artifactId>springfox-swagger2</artifactId>    <version>2.5.0</version></dependency>早springBoot的入口main方法中配置@EnableSwagger2注解

@EnableSwagger2@SpringBootapplication@EnableFeignClients@EnableDiscoveryClient@EnableCachingpublic class SystemApp {		private static ConfigurableApplicationContext ctx;		public static void main(String[] args) {		ctx = SpringApplication.run(SystemApp.class, args);		    }		public static void showBeans() {		String[] beanNames = ctx.getBeanDefinitionNames();		Arrays.sort(beanNames);		for (String beanName : beanNames) {			System.out.println(beanName);		}	}}在Controll中增加swagger的api注解

@Api("任务管理-接口")@RestController@RequestMapping(path="/test)public class Controller {			@ApiOperation(value="分页查询任务")	@RequestMapping(path="/page", method=RequestMethod.POST)	public Response page(@ModelAttribute final Condition condition) {			}		@ApiOperation("根据id查询任务")	@RequestMapping(path="/findOne/{id}", method=RequestMethod.GET)	@ResponseBody	public Response findById(@PathVariable final Long id) {		}	

使用eclipse的run as重新启动Application的main函数

使用浏览器访问http://localhost:8080/swagger-ui.html

即可查看UserControll中暴漏的接口

其他补充:

 

/** * Swagger2配置类 * 在与spring boot集成时,放在与Application.java同级的目录下。 * 通过@Configuration注解,让Spring来加载该类配置。 * 再通过@EnableSwagger2注解来启用Swagger2。 */@Configuration@EnableSwagger2public class Swagger2 {        /**     * 创建API应用     * apiInfo() 增加API相关信息     * 通过select()函数返回一个ApiSelectorBuilder实例,用来控制哪些接口暴露给Swagger来展现,     * 本例采用指定扫描的包路径来定义指定要建立API的目录。     *      * @return     */    @Bean    public Docket createRestApi() {        return new Docket(DocumentationType.SWAGGER_2)                .apiInfo(apiInfo())                .select()                .apis(RequestHandlerSelectors.basePackage("package")) //swagget扫描目录                .paths(PathSelectors.any())                .build();    }        /**     * 创建该API的基本信息(这些基本信息会展现在文档页面中)     * 访问地址:http://项目实际地址/swagger-ui.html     * @return     */    private ApiInfo apiInfo() {        return new ApiInfoBuilder()                .title("Spring Boot中使用Swagger2构建RESTful APIs")                .description("更多请关注http://www.baidu.com")                .termsOfServiceUrl("http://www.baidu.com")                .contact("sunf")                .version("1.0")                .build();    }}灵活配置:

和上面对

1、加上了方法名字、属性名、提示方便阅读理解

2、不用直接传对象,参数一个个配置简单明了,选择需要不需要都可

@Api(value = "系统安全-角色管理", description="RoleController")  @RestControllerpublic class RoleController {			@ApiOperation(value="根据id查询角色(并封装属性菜单权限)")	@RequestMapping(value="sys/security/role/{id}", method=RequestMethod.GET)	public Response getById(@ApiParam(value="角色id", required=true) @PathVariable final Long id) {			}		@ApiOperation(value="分页复合查询角色")	@RequestMapping(value="sys/security/role", method=RequestMethod.POST)	public Response page(			@ApiParam(value="角色名称", required=false) @RequestParam(required=false) final String name, 			@ModelAttribute final QueryCondition condition) {			}		@ApiOperation(value="保存角色(新增/修改)")	@RequestMapping(value="sys/security/role", method=RequestMethod.PUT)	public Response save(			@ApiParam(value="角色id,修改时必须输入") @RequestParam(required=false) final Long id,			@ApiParam(value="角色名称") @RequestParam final String name,			@ApiParam(value="角色名称") @RequestParam(required=false) final String description,			@ApiParam(value="角色拥有的菜单id,多个用半角逗号隔开") @RequestParam final Long[] menuIds) {			}		@ApiOperation(value="删除角色")	@RequestMapping(value="sys/security/role/{id}", method=RequestMethod.DELETE)	public Response save(@ApiParam(value="角色id", required=true) @PathVariable final Long id) {			}}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表