相关文章推荐

@ApiOperation

注释在Control层,作用在方法上,对API进行简要描述

属性 说明 备注
value 简短的说明
notes 详细的description
tags 通过该属性对API进行分组
response 返回类的model,可以直接引用一个类 非必填,可以在ApiResponse中进行分开定义
responseContainer 标注返回类的类型,只用于提示,不检查 同上

@ApiParam

注释在Control层,作用于参数上,针对参数进行描述

属性 说明 备注
value 对参数的说明
name 请求参数的名字 可覆盖自动获取到的类名
required 请求参数是否必要

example :

JAVA注释:

@ApiOperition(value="short description",notes="detailed description",tags="TEST")
@PostMapping(value = "/api/testSwagger")
public String testSwagger(@RequestBody @ApiParam(name = "body",value="body",required = true) TestBody testParam)

对应的JSON文件:

...... "paths": { "/api/testSwagger": { "post": { "tags": [ "TEST" "summary": "short description", "description": "detailed description", "operationId": "short descriptionUsingPOST", "consumes": [ "application/json" "parameters": [ "in": "body", "name": "body", "description": "body", "required": true, "schema": { "$ref": "#/definitions/TestBody"//这里表示引入Model,通过@ApiModel注入 ......

3、@ApiImplicatParams, @ApiImplicatParam

注释在Control层,作用于方法上,用于描述单独的参数
当有多个单独参数时,使用@ApiImplicatParams进行包裹

一个参数也建议包裹起来,便于后期添加新的参数

@ApiImplicatParam

属性说明备注
name参数名
value参数描述,对应description
required参数是否必需会在页面生成红色星号提醒
dataType参数数据类型仅作为提示作用,不进行校验,覆盖自动获取的数据类型
defaultValue默认值
paramType参数位置,放在哪里见下表

paramType :

属性说明备注
query参数随地址,自动映射
body参数以流的形式提交只支持Post,较鸡肋,不推荐
header参数在header中
form以表单提交只支持Post

当代码中使用@RequestBody接收数据的时候,建议采用@ApiModel进行参数设置

example :

JAVA注释:

@ApiImplicatParams({
    @ApiImplicatParam(paramType = "header", name = "Content-Type", defaultValue = "application/json", required = true ,value = "header param")
public String testSwagger(@RequestBody @ApiParam(name = "body",value="body",required = true) TestBody testParam)

对应的JSON文件:

...... "paths": { "/sap/ems/api/testSwagger": { "post": { ...... "parameters": [ "in": "body", "name": "body", "description": "body", "required": true, "schema": { "$ref": "#/definitions/TestBody" "name": "Content-Type", "in": "header", "description": "header param", "required": true, "type": "string", "default": "application/json" ...... ......

4、@ApiResponses, @ApiResponse

注释在Control层,作用于方法上,描述返回类型,多个Response时用@ApiResponses包裹,常用于标识异常状态码

属性说明备注
code返回的状态码
message返回状态的描述
response返回状态的model可以直接赋值返回类,自动解析

example :

JAVA注释:

    @ApiResponses(value = {
    		@ApiResponse(code = 201, message = "Created",response = IntegrationApiMessage.class),
    		@ApiResponse(code = 401, message = "Unauthorized"),
    		@ApiResponse(code = 403, message = "Forbidden"),
    		@ApiResponse(code = 404, message = "Not Found")
    public ResponseEntity<IntegrationApiMessage<Object>> testSwagger(@RequestBody @ApiParam(name = "body",value="body",required = true) TestBody testParam)

对应的JSON文件:

    "paths": {
        "/sap/ems/api/testSwagger": {
            "post": {
                ......
                "responses": {
                    "200": {
                        "description": "OK",
                        "schema": {
                            "$ref": "#/definitions/IntegrationApiMessage«object»"
                    "201": {
                        "description": "Created",
                        "schema": {
                            "$ref": "#/definitions/IntegrationApiMessage"
                    "401": {
                        "description": "Unauthorized"
                    "403": {
                        "description": "Forbidden"
                    "404": {
                        "description": "Not Found"
 

Swagger目前版本支持自动识别用@ApiOperation注释过的方法中的请求参数及返回类型,所以这里的200状态码是自动识别的

5、@ApiModel,@ApiModelProperty

@ApiModel:

注释在Dao层,作用在@RequestBody修饰的请求参数类上,用于声明一个模板类型,对应JSON中的definition

属性说明备注
value为该Model提供一个备用名称默认为类名
description对Model进行描述
parent提供Model的父类可以用来描述类的继承关系

@ApiModelProperty

注释在Dao层,作用在声明的变量上,用于声明Model中的参数结构

属性说明备注
value对参数的描述对应description,会在Model中生成简要的描述
required是否必要默认为否
dataType对参数数据类型的描述不进行校验,可覆盖从类中读取到的类型
name参数名字可以用于覆盖参数名,默认为原参数名
allowbleValues提供枚举值对应JSON中的enum,会根据该属性生成example
hidden是否隐藏默认为否
allowEmptyValue是否允许为空默认为否

example :

JAVA注释

@ApiModel(value = "TestBody)
public class TestBody
    @JsonProperty("Attribute")
    @ApiModelProperty(value = "attribute", dataType = "string",allowableValues = "EntitlementNo,OfferingID",required = true)
    private String attribute;
    @JsonProperty("Operation")
    @ApiModelProperty(value = "operation", dataType = "string",allowableValues = "eq,isnull")
    private String operation;
    @ApiModelProperty(value = "dataType", hidden = true)
    private String dataType;
    @JsonProperty("Values")
    @ApiModelProperty(value = "values", dataType = "List")
    private List<String> values;
    @JsonProperty("SubQueryFilters")
    @ApiModelProperty(value = "subQueryFilter", dataType = "List")
    private List<QueryFilter> subQueryFilters;

对应的JSON文件

...... "definitions": { "TestBody": { "type": "object", "required": [ "Attribute" "properties": { "Attribute": { "type": "string", "description": "attribute", "enum": [ "EntitlementNO", "OfferingID" "Operation": { "type": "string", "description": "operation", "enum": [ "eq", "isnull" "SubQueryFilters": { "type": "array", "description": "subQueryFilter", "items": { "$ref": "#/definitions/QueryFilter" "Values": { "type": "array", "description": "values", "items": { "type": "string" ...... 一、JSON、JAVA注释对比说明1、@Api注释在Control层,作用在类上面,对Control层进行描述属性说明备注tags声明分组valuedescriptionexample :JAVA注释:@Api(tags=&amp;quot;TEST&amp;quot;,description=&amp;quot;TEST Control&amp;quot;)public class TestImple{...
API2Swagger 手动生成和维护用于REST服务的Swagger JSON可能会很痛苦,因为您必须提供有关REST服务的太多详细信息。 为了避免这项手动工作,我们开发了API2Swagger工具,可通过调用REST服务自动生成Swagger JSON。 使用构建器进行Swagger JSON生成 使用命令行实用程序生成Swagger JSONJSON响应数据生成JSON模式 使用新API更新现有Swagger JSON文档的功能 通过API相关修改来修改现有Swagger JSON的能力-包括添加新的请求参数,响应更改 能够通过REST API识别“文件”下载,因为Swagger JSON文档具有处理文件下载的特殊方式 构建包含独立jar的项目 ./gradlew clean buildall 可以在<root>/build/libs下找到
本文讲解了Swagger的特性以及如何在java项目中使用Swagger。另外如果你的项目使用Gson作为接口的json换工具,那么本文还告诉你如何让Swagger兼容Gson。最后也介绍了Swagger的局限性。 Swagger概述 如何引入Swagger 解决Gson和springfox的兼容性 Swagger其它功能概述 Swagger的问题 随着...
<groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId
为什么要写这个自定义注解,因为需求需要处理一批比较复杂的json(如果只有一个,直接手动写代码解析就好),众所周知批量且类似的工作,最好抽象出来。这也符合编程的风格,不重复造轮子,但是需要造轮子。【前面铺垫比较长,如果需求比较复杂的json可以直接划到最下面,粘贴自定义注解类 和 自定义注解解析工具类】需要的字段也恰好是对应上的 java对象 二、二星难度jsonjson对象中出现层级】 难度加大一些,比如,出现了层级 简单解析的话,我们可以再新建一个Like对象,如:
Swagger2 JSON入参使用Map、JSONObject等非实体类接收时的处理,基本就是扩展swagger插件通过注解动态生成实体类。 以下提供3种实现,可以按需选择: 一. ApiGlobalModel ApiGlobalModel注解用于从一个已有的实体类中抽取接口所需的参数字段 * 修改地址 - ApiGlobalModel * @return R @PostMapping("2") @ApiOperati
现在SWAGGER官网主要提供了几种开源工具,提供相应的功能。可以通过配置甚至是修改源码以达到你想要的效果。 Swagger Codegen: 通过Codegen 可以将描述文件生成html格式和cwiki形式的接口文档,同时也能生成多钟语言的服务端和客户端的代码。支持通过jar包,docker,node等方式在本地化执行生成。也可以在后面的Swagger Editor中在线生成。 Swagger UI:提供了一个可视化的UI页面展示描述文件。接口的调用方、测试、项目经理等都可以在该页面中对相关
Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。 接口的文档在线自动生成。 功能测试。 <!--swagger 文档注释 https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 --> <dependency>
@JSONField(name = "C-API-Status") @JsonProperty("C-API-Status") @ApiModelProperty(value = "响应码") private String CApiStatus; @JSONField(name = "C-Response-Code") @JsonProperty("C-Response-Code") @ApiModelProperty(value = "888888") private String CResp.
<groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency&gt
记一次Swagger-UI的封装以及文档JSON数据的解析处理起源按照代码Controller包对接口进行分组文档JSON的自定义处理 Spring工程往往要最后形成文档,供其他人使用,尤其是开发的接口。Java中的类文档有很多种,比如:javadoc,genDoc,SwaggerUI等。按照要求,我们首先,需要对不同的Controller包进行分组,每个controller包都代表一类接口,其次,原有SwagerUI显示界面也许不是我们想要的,所以我们需要改造。 注意,我代码中用到的Swagger
swagger上生成关于json数据类型返回结果的描述 注解ApiReturnJsonObject表示返回结果的map结构 package com.test.swagger2; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.Re...
Swagger是一个用于设计、构建、记录和使用RESTful API的工具,如果你需要配置Swagger代码,你需要遵循以下步骤: 1. 添加Swagger依赖:在你的项目中添加Swagger依赖,这通常需要在你的项目的pom.xml文件中添加以下依赖: <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> 2. 配置Swagger:在你的Spring Boot应用程序中配置Swagger,这通常涉及到创建一个Swagger配置类,该类应该包含@Configuration和@EnableSwagger2注解。你还需要配置一些其他的参数,例如Swagger API文档的标题、版本、描述等等。 3. 添加Swagger注解:在你的控制器类和方法中添加Swagger注解,这些注解将用于生成Swagger API文档。例如,你可以使用@Api注解来指定控制器类的说明,使用@ApiOperation注解来指定方法的说明,使用@ApiParam注解来指定方法参数的说明等等。 4. 运行应用程序:当你完成了Swagger的配置之后,你可以运行你的Spring Boot应用程序,并通过Swagger UI来访问Swagger API文档。Swagger UI通常可以通过在Web浏览器中输入http://localhost:8080/swagger-ui.html来访问。 以上是配置Swagger的基本步骤,你可以根据你的具体需求进行自定义配置。
PowerMock+Mockito 报错 Could not reconfigure JMX java.lang.LinkageError解决方案(原理待更新) yannbai08: 原理老哥方便解答下么 PowerMock+Mockito 报错 Could not reconfigure JMX java.lang.LinkageError解决方案(原理待更新) 花溪的小石头: 也遇到了这个问题 2020-03-14 极米科技一面 qq_39902837: 老哥你面试的是什么职位呀 2020-03-12 万达信息一面 恩佐大人的小跟班 JOptionPaine: SpringBoot那一套,但是我最后没有去哦
 
推荐文章