springboot+mybatis+swagger快速构建REST API

在springcloud项目中使用eureka,需要服务注册中心(即下面例子中的swagger-demo-server)和服务提供者(swagger-demo-consumer),同时服务的提供者之间可以相互调用,从而实现分布式架构。

Swagger 是一个用于生成、描述、调用和可视化 RESTful 风格的 Web 服务,能够实时同步api与文档,避免接口改动而文档未及时更新而产生的问题。

一、创建服务注册中心

file-->new-->other-->spring starterproject

选择web和eureka server构建项目,此时自动生成的pom中已添加依赖注册中心的依赖,或者是不选择,等项目生成完毕后再手动添加依赖

1.配置文件 application.properties

2.在启动类上加注解@EnableEurekaServer,表示它是一个注册中心

二、创建服务提供者

1.与注册中心的创建方式一样,此时是注意是服务端选择eureka discovery,生成的pom包括

2.在pom中添加mybati和swagger相关的依赖

3.在启动类上增加注释@EnableEurekaClient,表示提供服务

4.在配置文件application.properties配置

5.建包,结构如下


6.新建对应controller service dao dto

controller层


service



7.配置文件添加mybatis相关的配置

8.在启动类上添加注解@MapperScan("org.crx.swagger.dao"),扫描mapper

9.创建swagger配置类,与启动类同级


10.在controller层添加swagger配置说明


至此结束,打开swagger-ui查看效果

常用注解

在上面的代码中,使用了 @Api.@ApiOperation,下面介绍一下常用的注解

注解                     描述                                                   解释

@ApiMarks          a class as a Swagger resource.        用于类对象,只有在类对象上标注该注解后,相应的api信息才能展示出来.

@ApiOperation    Describes an operation or typically a HTTP method against a specific path.    描述具体的方法

@ApiImplicitParam     Represents a single parameter in an API Operation.      描述具体的请求参数,比如具体的响应方法的参数为 HttpServletRequest时,我会从该参数中取一些请求参数,则可以通过该方法单独定义参数.见下面的具体说明,该参数不能单独使用,必须和@ApiImplicitParams一起使用,可参考后面的例子

@ApiImplicitParams   A wrapper to allow a list of multiple ApiImplicitParam objects.    组合一组@ApiImplicitParam

@ApiParam          Adds additional meta-data for operation parameters.     定义具体的请求参数,类似@RequestParam 参数,直接在方法参数上使用.

@ApiResponse     Describes a possible response of an operation.返回值,该类主要有code值与message两个属性,code值必须是http 返回code值,默认会有200,404等,不能单独使用,必须和@ApiResponses一起使用

@ApiResponses     A wrapper to allow a list of multiple ApiResponse objects.   组合@ApiResponse

@ApiModel        Provides additional information about Swagger models.          提供对请求参数与返回结果中的model的定义

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,618评论 19 139
  • 有很多读者问过这样的一个问题:虽然使用Swagger可以为Spring MVC编写的接口生成了API文档,但是在微...
    程序猿DD阅读 11,509评论 14 69
  • 写给新学期女儿的一封信 亲爱的女儿: 时间过得真快啊,转眼你进入六年级的第二个学期了。 ...
    夏花静秋阅读 257评论 0 0
  • __author__ = 'bruce' class Entry_Exit(object): def __...
    第八共同体阅读 189评论 0 0
  • 今天是周一,昨天听完武校长的课,立即我就用上了。他说好习惯的养成需要21天,但是最关键的是前七天。我要孩子养成早晚...
    石雨琪妈妈阅读 209评论 0 0

友情链接更多精彩内容