威張っ-UIインターフェイスのドキュメント

リファレンスアドレス

 

説明

以下の構成は、ばねブートプログラムに基づいています。
 

コメント

- クラスの@Api();
  このクラスは、闊歩リソースを示すフラグであります
 
- @ApiOperation()メソッドが使用されます。
  操作は、httpリクエストを表し、
 
- @ApiParam()メソッドが使用され、パラメータフィールドを指定します。
  パラメータ(命令または必要な場合など)を表現するためにメタデータを追加します。
 
- クラスの@ApiModel()
  クラスは、エンティティクラスを受信するためのパラメータを説明することを示し
 
- @ApiModelProperty()メソッドが使用され、フィールド
  命令やデータの操作モデルのプロパティの変更の表現
 
- クラス、メソッド、メソッドパラメータの@ApiIgnore()
  このメソッドは、クラスを表すか、無視します
 
- 用@ApiImplicitParam()メソッド
  個々のリクエストパラメータを表します
 
- 用@ApiImplicitParams()メソッド
  @ApiImplicitParam以上が含まれています
 

練習

@Api()クラスのため、このクラスを表すリソースの闊歩を特定します
  tags-説明
  付加価値もあなたがタグの代替を使用することができ、説明
  あなたが複数の値を持っている場合でも、タグ、複数のリストを生成
@Api(値= "ユーザコントローラ"、タグ= { "ユーザーインタフェース動作" })
@RestController 
パブリック クラスUserControllerで{
 
}

 

@ApiOperation()プロセスで使用されるが、HTTPリクエストの動作を表します
  記載された方法で使用される値
  ヒントコンテンツのノート
  tags可以重新分组(视情况而用)
 
@ApiParam()用于方法,参数,字段说明;表示对参数的添加元数据(说明或是否必填等)
  name–参数名
  value–参数说明
  required–是否必填
@Api(value="UserController",tags={"用户接口"})
@RestController
public class UserController {
     @ApiOperation(value="获取用户信息",tags={"获取用户信息"},notes="注意")
     @GetMapping("/getUserInfo")
     public User getUserInfo(@ApiParam(name="id",value="用户id",required=true) Long id,@ApiParam(name="username",value="用户名") String username) { 
     User user = userService.getUserInfo();
 
     return user;
  }
}
 
@ApiModel() - 用于类 ;表示对类进行说明,用于参数用实体类接收
  value–表示对象名
  description–描述
   
@ApiModelProperty() - 用于方法,字段; 表示对model属性的说明或者数据操作更改
  value–字段说明
  name–重写属性名字
  dataType–重写属性类型
  required–是否必填
  example–举例说明
  hidden–隐藏
@ApiModel(value="user",description="用户对象")
@Data
public class User implements Serializable{
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value="用户名",name="username",example="xingguo")
    private String username;
    @ApiModelProperty(value="状态",name="state",required=true)
    private Integer state;
    private String password;
    private String nickName;
    private Integer isDeleted;
 
    @ApiModelProperty(value="ids",hidden=true)
    private String[] ids;
    private List<String> idList;
}

 

@ApiOperation("修改用户信息")
@PostMapping("/updateUserInfo")
public int updateUserInfo(@RequestBody @ApiParam(name="用户对象",value="json格式",required=true) User user){
    int num = userService.updateUserInfo(user);
    return num;
}

 

@ApiIgnore()用于类或者方法上,可以不被swagger显示在页面上。
 
@ApiImplicitParam()用于方法,表示单独的请求参数
@ApiImplicitParams()用于方法,包含多个 @ApiImplicitParam
  name–参数ming
  value–参数说明
  dataType–数据类型
  paramType–参数类型
  example–举例说明
@ApiOperation("查询测试")
@GetMapping("select")
//@ApiImplicitParam(name="name",value="用户名",dataType="String", paramType = "query")
@ApiImplicitParams({
@ApiImplicitParam(name="name",value="用户名",dataType="string", paramType = "query",example="xingguo"),
@ApiImplicitParam(name="id",value="用户id",dataType="long", paramType = "query")})
public void select(){

}

 

pom依赖

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.9.2</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.9.2</version>
</dependency>
<!-- 下面这个界面更好看,更好用-->
<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>swagger-bootstrap-ui</artifactId>
    <version>1.9.5</version>
</dependency>

 

具体配置

(包含分组)
import com.google.common.base.Predicates;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.ParameterBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.schema.ModelRef;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.service.Parameter;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

import java.util.ArrayList;
import java.util.List;

/**
 * swagger-api 配置
 *
 * @author wzm
 * @version 1.0.0
 * @date 2019/6/15
 **/
@Configuration
@EnableSwagger2
@EnableSwaggerBootstrapUI
public class Swagger2 {

    /**
     * http://localhost:8085/fabric-net/swagger-ui.html
     * http://localhost:8085/fabric-net/doc.html
     */

    private static final String SWAGGER_SCAN_BUSINESS_PACKAGE = "com.thyc.fabric.controller.business";
    private static final String BUSINESS_VERSION = "1.0.0";

    private static final String SWAGGER_SCAN_FABRIC_PACKAGE = "com.thyc.fabric.controller.fabric";
    private static final String FABRIC_VERSION = "1.0.0";

    @Bean
    public Docket createBusinessApi() {
        List<Parameter> pars = new ArrayList<>();
        ParameterBuilder ticketPar1 = new ParameterBuilder();
        ticketPar1.name("Authorization").description("登录令牌")
                .modelRef(new ModelRef("string")).parameterType("header")
                .required(false).build();
        pars.add(ticketPar1.build());
        return new Docket(DocumentationType.SWAGGER_2)
                .globalOperationParameters(pars)
                //分组名不支持中文
                .groupName("business")
                .apiInfo(apiBusinessInfo())
                .pathMapping("/")
                .select()
                // 对所有api进行监控
                .apis(RequestHandlerSelectors.basePackage(SWAGGER_SCAN_BUSINESS_PACKAGE))
                // 错误路径不监控
                .paths(Predicates.not(PathSelectors.regex("/error.*")))
                // 对根下所有路径进行监控
                .paths(PathSelectors.regex("/.*"))
                .build();
    }

    private ApiInfo apiBusinessInfo() {
        Contact contact = new Contact("thyc","thyc.com","thyc@email");
        return new ApiInfoBuilder()
                //设置文档的标题
                .title("Business")
                //设置文档的描述->1.Overview
                .description("业务模块数据管理")
                //设置文档的版本信息-> 1.1 Version information
                .termsOfServiceUrl("http://localhost:8085/fabric-net")
                .contact(contact)
                .version(BUSINESS_VERSION)
                .build();
    }

    //------------------------------------------------------------------------------------------------------------------

    @Bean
    public Docket createFabricApi() {
        List<Parameter> pars = new ArrayList<Parameter>();
        ParameterBuilder ticketPar1 = new ParameterBuilder();
        ticketPar1.name("Authorization").description("登录令牌")
                .modelRef(new ModelRef("string")).parameterType("header")
                .required(false).build();
        pars.add(ticketPar1.build());
        return new Docket(DocumentationType.SWAGGER_2)
                .globalOperationParameters(pars)
                //分组名不支持中文
                .groupName("fabric")
                .apiInfo(apiFabricInfo())
                .pathMapping("/")
                .select()
                // 对所有api进行监控
                .apis(RequestHandlerSelectors.basePackage(SWAGGER_SCAN_FABRIC_PACKAGE))
                // 错误路径不监控
                .paths(Predicates.not(PathSelectors.regex("/error.*")))
                // 对根下所有路径进行监控
                .paths(PathSelectors.regex("/.*"))
                .build();
    }

    private ApiInfo apiFabricInfo() {
        Contact contact = new Contact("thyc","thyc.com","thyc@email");
        return new ApiInfoBuilder()
                //设置文档的标题
                .title("Fabric-Network")
                //设置文档的描述->1.Overview
                .description("超级账本网络信息管理")
                //设置文档的版本信息-> 1.1 Version information
                .termsOfServiceUrl("http://localhost:8085/fabric-net")
                .contact(contact)
                .version(FABRIC_VERSION)
                .build();
    }
    
}

 

おすすめ

転載: www.cnblogs.com/jockming/p/12233433.html