精华内容
参与话题
问答
  • swagger2 注解说明 ( @ApiImplicitParams )

    万次阅读 多人点赞 2018-10-17 12:25:36
    @Api:用在请求的类上,表示对类的说明 tags="说明该类的作用,可以在UI界面上看到的注解" value="该参数没什么意义,在UI界面上也看到,所以不需要配置" @ApiOperation:用在请求的方法上,说明方法的用途、...

     

     前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。

    @Api:用在请求的类上,表示对类的说明
        tags="说明该类的作用,可以在UI界面上看到的注解"
        value="该参数没什么意义,在UI界面上也看到,所以不需要配置"
    
    
    @ApiOperation:用在请求的方法上,说明方法的用途、作用
        value="说明方法的用途、作用"
        notes="方法的备注说明"
    
    
    @ApiImplicitParams:用在请求的方法上,表示一组参数说明
        @ApiImplicitParam:用在@ApiImplicitParams注解中,指定一个请求参数的各个方面
            name:参数名
            value:参数的汉字说明、解释
            required:参数是否必须传
            paramType:参数放在哪个地方
                · header --> 请求参数的获取:@RequestHeader
                · query --> 请求参数的获取:@RequestParam
                · path(用于restful接口)--> 请求参数的获取:@PathVariable
                · body(不常用)
                · form(不常用)    
            dataType:参数类型,默认String,其它值dataType="Integer"       
            defaultValue:参数的默认值
    
    
    @ApiResponses:用在请求的方法上,表示一组响应
        @ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息
            code:数字,例如400
            message:信息,例如"请求参数没填好"
            response:抛出异常的类
    
    
    @ApiModel:用于响应类上,表示一个返回响应数据的信息
                (这种一般用在post创建的时候,使用@RequestBody这样的场景,
                请求参数无法使用@ApiImplicitParam注解进行描述的时候)
        @ApiModelProperty:用在属性上,描述响应类的属性

    1、@Api:用在请求的类上,说明该类的作用
         tags="说明该类的作用"
         value="该参数没什么意义,所以不需要配置"
    示例:

    @Api(tags="APP用户注册Controller")

    2、@ApiOperation:用在请求的方法上,说明方法的作用
    @ApiOperation:"用在请求的方法上,说明方法的作用"
        value="说明方法的作用"
        notes="方法的备注说明"
    示例:

    @ApiOperation(value="用户注册",notes="手机号、密码都是必输项,年龄随边填,但必须是数字")

    3、@ApiImplicitParams:用在请求的方法上,包含一组参数说明
         @ApiImplicitParams:用在请求的方法上,包含一组参数说明
         @ApiImplicitParam:用在 @ApiImplicitParams 注解中,指定一个请求参数的配置信息       
            name:参数名
            value:参数的汉字说明、解释
            required:参数是否必须传
            paramType:参数放在哪个地方
                · header --> 请求参数的获取:@RequestHeader
                · query --> 请求参数的获取:@RequestParam
                · path(用于restful接口)--> 请求参数的获取:@PathVariable
                · body(不常用)
                · form(不常用)    
            dataType:参数类型,默认String,其它值dataType="Integer"       
            defaultValue:参数的默认值

    示列:

    @ApiImplicitParams({
        @ApiImplicitParam(name="mobile",value="手机号",required=true,paramType="form"),
        @ApiImplicitParam(name="password",value="密码",required=true,paramType="form"),
        @ApiImplicitParam(name="age",value="年龄",required=true,paramType="form",dataType="Integer")
    })

    4、@ApiResponses:用于请求的方法上,表示一组响应
         @ApiResponses:用于请求的方法上,表示一组响应
         @ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息
            code:数字,例如400
            message:信息,例如"请求参数没填好"
            response:抛出异常的类
    示例:

    @ApiOperation(value = "select1请求",notes = "多个参数,多种的查询参数类型")
    @ApiResponses({
        @ApiResponse(code=400,message="请求参数没填好"),
        @ApiResponse(code=404,message="请求路径没有或页面跳转路径不对")
    })


    5、@ApiModel:用于响应类上,表示一个返回响应数据的信息
         @ApiModel:用于响应类上,表示一个返回响应数据的信息
                (这种一般用在post创建的时候,使用@RequestBody这样的场景,
                请求参数无法使用@ApiImplicitParam注解进行描述的时候)
         @ApiModelProperty:用在属性上,描述响应类的属性


    示例:

    import io.swagger.annotations.ApiModel;
    import io.swagger.annotations.ApiModelProperty;
    
    import java.io.Serializable;
    
    @ApiModel(description= "返回响应数据")
    public class RestMessage implements Serializable{
    
        @ApiModelProperty(value = "是否成功")
        private boolean success=true;
        @ApiModelProperty(value = "返回对象")
        private Object data;
        @ApiModelProperty(value = "错误编号")
        private Integer errCode;
        @ApiModelProperty(value = "错误信息")
        private String message;
    
        /* getter/setter */
    }

     

     

    展开全文
  • swagger2

    千次阅读 2017-06-27 20:19:47
    swagger需要导入swagger相关页面,...swagger2更近一步,只需要做几个配置即可,更简单,更易用。项目基于spring-boot实现,下面指定配置点pom.xml依赖 <!-- swagger 框架依赖 --> <groupId>io.springfox</groupId>

    swagger需要导入swagger相关页面,比较麻烦。
    swagger2更近一步,只需要做几个配置即可,更简单,更易用。

    项目基于spring-boot实现,下面指定配置点

    pom.xml依赖

            <!--  swagger 框架依赖 -->
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger2</artifactId>
                <version>2.6.1</version>
            </dependency>
    
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger-ui</artifactId>
                <version>2.6.1</version>
            </dependency>

    swagger2配置类

    /**
     *
     * swagger2使用说明:
         @Api:用在类上,说明该类的作用
         @ApiOperation:用在方法上,说明方法的作用
         @ApiImplicitParams:用在方法上包含一组参数说明
         @ApiImplicitParam:用在@ApiImplicitParams注解中,指定一个请求参数的各个方面
             paramType:参数放在哪个地方
             header-->请求参数的获取:@RequestHeader
             query-->请求参数的获取:@RequestParam
             path(用于restful接口)-->请求参数的获取:@PathVariable
             body(不常用)
             form(不常用)
             name:参数名
             dataType:参数类型
             required:参数是否必须传
             value:参数的意思
             defaultValue:参数的默认值
         @ApiResponses:用于表示一组响应
         @ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息
             code:数字,例如400
             message:信息,例如"请求参数没填好"
             response:抛出异常的类
         @ApiModel:描述一个Model的信息(这种一般用在post创建的时候,使用@RequestBody这样的场景,请求参数无法使用@ApiImplicitParam注解进行描述的时候)
         @ApiModelProperty:描述一个model的属性
      *
      *
     */
    @Configuration
    @EnableSwagger2
    public class SwaggerConfig2 {
    
        @Bean
        public Docket createRestApi() {
            return new Docket(DocumentationType.SWAGGER_2)
                                .apiInfo(createApiInfo())
                                .select()
                                .apis(RequestHandlerSelectors.basePackage("com.aaa.bbb"))
                                .paths(PathSelectors.any())
                                .build();
        }
    
        private ApiInfo createApiInfo() {
            return new ApiInfoBuilder().title("AAA RESTful API 说明文档")
                                        .version("1.0")
                                        .build();
        }
    }

    Application类中,配置如下

    @EnableSwagger2
    @SpringBootApplication
    @EnableAutoConfiguration
    public class AAAApplication {
        public static void main(String[] args){
            xxx..
        }
    }

    controller中

    @Api(value = "aaa", description = "这是aaa")
    @RestController
    @RequestMapping("/aaa")
    @CrossOrigin(allowedHeaders="*", allowCredentials="true")
    public class AAAController {
    
        @RequestMapping(value = "/bbb", method = RequestMethod.GET)
        @ResponseBody
        @ApiOperation(value = "bbb", notes = "这是bbb", httpMethod = "GET")
        public void getInstanceList(HttpServletResponse response,
                @ApiParam("ccc ID") @RequestParam(value = "ccc_id") int ccc_id){
            sout。。。。
    }
    }

    直接访问

            http://服务名:8080/swagger-ui.html

    即可

    展开全文
  • Swagger2

    千次阅读 2017-12-12 15:49:23
    由于Spring Boot能够快速开发、便捷部署等特性,相信有很大一部分Spring Boot的用户会用来构建RESTful API。而我们构建RESTful API的目的通常都是由于多终端的原因,这些终端会共用很多底层业务逻辑,因此我们会抽象...

    由于Spring Boot能够快速开发、便捷部署等特性,相信有很大一部分Spring Boot的用户会用来构建RESTful API。而我们构建RESTful API的目的通常都是由于多终端的原因,这些终端会共用很多底层业务逻辑,因此我们会抽象出这样一层来同时服务于多个移动端或者Web前端。

    这样一来,我们的RESTful API就有可能要面对多个开发人员或多个开发团队:IOS开发、Android开发或是Web开发等。为了减少与其他团队平时开发期间的频繁沟通成本,传统做法我们会创建一份RESTful API文档来记录所有接口细节,然而这样的做法有以下几个问题:

    • 由于接口众多,并且细节复杂(需要考虑不同的HTTP请求类型、HTTP头部信息、HTTP请求内容等),高质量地创建这份文档本身就是件非常吃力的事,下游的抱怨声不绝于耳。
    • 随着时间推移,不断修改接口实现的时候都必须同步修改接口文档,而文档与代码又处于两个不同的媒介,除非有严格的管理机制,不然很容易导致不一致现象。

    为了解决上面这样的问题,本文将介绍RESTful API的重磅好伙伴Swagger2,它可以轻松的整合到Spring Boot中,并与Spring MVC程序配合组织出强大RESTful API文档。它既可以减少我们创建文档的工作量,同时说明内容又整合入实现代码中,让维护文档和修改代码整合为一体,可以让我们在修改代码逻辑的同时方便的修改文档说明。另外Swagger2也提供了强大的页面测试功能来调试每个RESTful API。具体效果如下图所示:

    alt=alt=

    下面来具体介绍,如果在Spring Boot中使用Swagger2。首先,我们需要一个Spring Boot实现的RESTful API工程,若您没有做过这类内容,建议先阅读
    Spring Boot构建一个较为复杂的RESTful APIs和单元测试

    下面的内容我们会以教程样例中的Chapter3-1-1进行下面的实验(Chpater3-1-5是我们的结果工程,亦可参考)。

    添加Swagger2依赖

    pom.xml中加入Swagger2的依赖


    <dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.2.2</version>
    </dependency>
    <dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.2.2</version>
    </dependency>

    创建Swagger2配置类

    Application.java同级创建Swagger2的配置类Swagger2


    @Configuration
    @EnableSwagger2
    public class Swagger2 {

    @Bean
    public Docket createRestApi() {
    return new Docket(DocumentationType.SWAGGER_2)
    .apiInfo(apiInfo())
    .select()
    .apis(RequestHandlerSelectors.basePackage("com.didispace.web"))
    .paths(PathSelectors.any())
    .build();
    }

    private ApiInfo apiInfo() {
    return new ApiInfoBuilder()
    .title("Spring Boot中使用Swagger2构建RESTful APIs")
    .description("更多Spring Boot相关文章请关注:http://blog.didispace.com/")
    .termsOfServiceUrl("http://blog.didispace.com/")
    .contact("程序猿DD")
    .version("1.0")
    .build();
    }

    }

    如上代码所示,通过@Configuration注解,让Spring来加载该类配置。再通过@EnableSwagger2注解来启用Swagger2。

    再通过createRestApi函数创建Docket的Bean之后,apiInfo()用来创建该Api的基本信息(这些基本信息会展现在文档页面中)。select()函数返回一个ApiSelectorBuilder实例用来控制哪些接口暴露给Swagger来展现,本例采用指定扫描的包路径来定义,Swagger会扫描该包下所有Controller定义的API,并产生文档内容(除了被@ApiIgnore指定的请求)。

    添加文档内容

    在完成了上述配置后,其实已经可以生产文档内容,但是这样的文档主要针对请求本身,而描述主要来源于函数等命名产生,对用户并不友好,我们通常需要自己增加一些说明来丰富文档内容。如下所示,我们通过@ApiOperation注解来给API增加说明、通过@ApiImplicitParams@ApiImplicitParam注解来给参数增加说明。


    @RestController
    @RequestMapping(value="/users") // 通过这里配置使下面的映射都在/users下,可去除
    public class UserController {

    static Map<Long, User> users = Collections.synchronizedMap(new HashMap<Long, User>());

    @ApiOperation(value="获取用户列表", notes="")
    @RequestMapping(value={""}, method=RequestMethod.GET)
    public List<User> getUserList() {
    List<User> r = new ArrayList<User>(users.values());
    return r;
    }

    @ApiOperation(value="创建用户", notes="根据User对象创建用户")
    @ApiImplicitParam(name = "user", value = "用户详细实体user", required = true, dataType = "User")
    @RequestMapping(value="", method=RequestMethod.POST)
    public String postUser(@RequestBody User user) {
    users.put(user.getId(), user);
    return "success";
    }

    @ApiOperation(value="获取用户详细信息", notes="根据url的id来获取用户详细信息")
    @ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "Long")
    @RequestMapping(value="/{id}", method=RequestMethod.GET)
    public User getUser(@PathVariable Long id) {
    return users.get(id);
    }

    @ApiOperation(value="更新用户详细信息", notes="根据url的id来指定更新对象,并根据传过来的user信息来更新用户详细信息")
    @ApiImplicitParams({
    @ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "Long"),
    @ApiImplicitParam(name = "user", value = "用户详细实体user", required = true, dataType = "User")
    })
    @RequestMapping(value="/{id}", method=RequestMethod.PUT)
    public String putUser(@PathVariable Long id, @RequestBody User user) {
    User u = users.get(id);
    u.setName(user.getName());
    u.setAge(user.getAge());
    users.put(id, u);
    return "success";
    }

    @ApiOperation(value="删除用户", notes="根据url的id来指定删除对象")
    @ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "Long")
    @RequestMapping(value="/{id}", method=RequestMethod.DELETE)
    public String deleteUser(@PathVariable Long id) {
    users.remove(id);
    return "success";
    }

    }

    完成上述代码添加上,启动Spring Boot程序,访问:http://localhost:8080/swagger-ui.html
    。就能看到前文所展示的RESTful API的页面。我们可以再点开具体的API请求,以POST类型的/users请求为例,可找到上述代码中我们配置的Notes信息以及参数user的描述信息,如下图所示。

    altalt

    API文档访问与调试

    在上图请求的页面中,我们看到user的Value是个输入框?是的,Swagger除了查看接口功能外,还提供了调试测试功能,我们可以点击上图中右侧的Model Schema(黄色区域:它指明了User的数据结构),此时Value中就有了user对象的模板,我们只需要稍适修改,点击下方“Try it out!”按钮,即可完成了一次请求调用!

    此时,你也可以通过几个GET请求来验证之前的POST请求是否正确。

    相比为这些接口编写文档的工作,我们增加的配置内容是非常少而且精简的,对于原有代码的侵入也在忍受范围之内。因此,在构建RESTful API的同时,加入swagger来对API文档进行管理,是个不错的选择。

    完整结果示例可查看Chapter3-1-5

    参考信息

    展开全文
  • SpringBoot+Swagger2

    万次阅读 2020-10-09 10:11:31
    SpringBoot与Swagger2整合 依赖: <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> &...

    SpringBoot与Swagger2整合


    • 依赖:
    <dependencies>
    	<dependency>
    		<groupId>org.springframework.boot</groupId>
    		<artifactId>spring-boot-starter-web</artifactId>
    	</dependency>
    	<dependency>
    		<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
    		<groupId>io.springfox</groupId>
    		<artifactId>springfox-swagger2</artifactId>
    		<version>2.9.2</version>
    	</dependency>
    	<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
    	<dependency>
    		<groupId>io.springfox</groupId>
    		<artifactId>springfox-swagger-ui</artifactId>
    		<version>2.9.2</version>
    	</dependency>
    	<dependency>
    		<groupId>org.springframework.boot</groupId>
    		<artifactId>spring-boot-starter-test</artifactId>
    		<scope>test</scope>
    		<exclusions>
    			<exclusion>
    				<groupId>org.junit.vintage</groupId>
    				<artifactId>junit-vintage-engine</artifactId>
    			</exclusion>
    		</exclusions>
    	</dependency>
    </dependencies>
    
    • SwaggerConfig:
    package com.blu.config;
    
    import java.util.ArrayList;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.core.env.Environment;
    import org.springframework.core.env.Profiles;
    import org.springframework.web.bind.annotation.RequestMapping;
    import springfox.documentation.builders.PathSelectors;
    import springfox.documentation.builders.RequestHandlerSelectors;
    import springfox.documentation.service.ApiInfo;
    import springfox.documentation.service.Contact;
    import springfox.documentation.spi.DocumentationType;
    import springfox.documentation.spring.web.plugins.Docket;
    import springfox.documentation.swagger2.annotations.EnableSwagger2;
    
    @Configuration
    @EnableSwagger2
    public class SwaggerConfig {
    	
    	public static final Contact BLU_CONTACT = new Contact("BLU", "http://localhost:8080", "736917155@qq.com");
    	
    	/**
    	 * 配置了Swagger的Docket的bean实例
    	 */
    	@Bean
    	public Docket docket(Environment environment) {
    		
    		//设置需要启动Swagger的环境
    		Profiles profiles = Profiles.of("dev","test");
    		//通过acceptsProfiles方法判断是否处于指定的环境中
    		boolean flag = environment.acceptsProfiles(profiles);
    		
    		
    		return new Docket(DocumentationType.SWAGGER_2)
    				.apiInfo(apiInfo())
    				//是否启动Swagger,默认为true,这里通过flag来确保在开发环境启动,在发布环境关闭
    				.enable(flag)
    				//设置分组名,(通过创建不同的 Docket Bean 来实现分组)
    				.groupName("BLU组")
    				.select()
    				//配置扫描接口的方式,basePackage指定要扫描的包
    				.apis(RequestHandlerSelectors.basePackage("com.blu.controller"))
    				//依据指定的注解来扫描
    				//.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
    				//指定扫描的url
    				//.paths(PathSelectors.ant("/hello/**"))
    				.build();
    	}
    	
    	@Bean
    	public Docket docketA() {
    		return new Docket(DocumentationType.SWAGGER_2).groupName("A组");
    	}
    	
    	/**
    	 * 自定义apiInfo
    	 */
    	private ApiInfo apiInfo() {
    		return new ApiInfo(
    				"BLU的SwaggerApi文档",
    				"即使再小的帆也能远航",
    				"1.0",
    				"http://localhost:8080",
    				BLU_CONTACT,
    				"Apache 2.0",
    				"http://www.apache.org/licenses/LICENSE-2.0",
    				new ArrayList()
    		);
    	}
    
    }
    
    • application.properties
    spring.profiles.active=dev
    
    • application-dev.properties
    server.port=8080
    
    • application-pro.properties
    server.port=8081
    
    • User实体类:
    package com.blu.entity;
    
    import io.swagger.annotations.ApiModel;
    import io.swagger.annotations.ApiModelProperty;
    
    @ApiModel("用户实体类")
    public class User {
    
    	@ApiModelProperty("用户ID")
    	private int id;
    	@ApiModelProperty("用户名")
    	private String username;
    	@ApiModelProperty("年龄")
    	private int age;
    	
    	public int getId() {
    		return id;
    	}
    	public void setId(int id) {
    		this.id = id;
    	}
    	public String getUsername() {
    		return username;
    	}
    	public void setUsername(String username) {
    		this.username = username;
    	}
    	public int getAge() {
    		return age;
    	}
    	public void setAge(int age) {
    		this.age = age;
    	}
    	
    	
    }
    
    • HelloController
    package com.blu.controller;
    
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.RestController;
    import com.blu.entity.User;
    import io.swagger.annotations.Api;
    import io.swagger.annotations.ApiOperation;
    import io.swagger.annotations.ApiParam;
    
    @Api(tags="HelloController控制类")
    @RestController
    public class HelloController {
    
    	@ApiOperation("HelloController控制类中的Hello()方法")
    	@RequestMapping(value="/hello")
    	public String Hello() {
    		return "hello";
    	}
    	
    	@ApiOperation("HelloController控制类中的user()方法")
    	@PostMapping("/user")
    	public User user() {
    		return new User();
    	}
    	
    	@ApiOperation("HelloController控制类中的Hello2()方法")
    	@GetMapping("/hello2")
    	public String Hello2(@ApiParam("Hello2()方法中的username参数") @RequestParam String username) {
    		return "hello"+username;
    	}
    	
    }
    
    • 启动类:
    package com.blu;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class SpringbootSwaggerApplication {
    
    	public static void main(String[] args) {
    		SpringApplication.run(SpringbootSwaggerApplication.class, args);
    	}
    
    }
    
    展开全文
  • swagger2.zip

    2020-05-10 13:43:22
    -- swagger2 依赖开始--> <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 --> <groupId>io.springfox <artifactId>springfox-swagger2 <version>2.9.2 <groupId>io.swagger ...
  • Swagger2-注解说明

    万次阅读 2020-10-09 20:33:52
    Swagger2-注解说明 文章目录Swagger2-注解说明swagger2 注解整体说明1.@Api:请求类的说明2.@ApiOperation3.@ApiImplicitParams、@ApiImplicitParam4.@ApiResponses、@ApiResponse5.@ApiModel:用于JavaBean上,表示...
  • SpringBoot与Swagger2整合

    万次阅读 2020-09-23 14:14:59
    SpringBoot与Swagger整合 依赖: <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <...
  • SpringBoot整合Swagger2,再也不用维护接口文档了!

    万次阅读 多人点赞 2019-03-24 12:04:50
    前后端分离后,维护接口文档基本上是必不可少的工作。一个理想的状态是设计好后,接口文档发给前端和后端,...还好,有一些工具可以减轻我们的工作量,Swagger2就是其中之一,至于其他类似功能但是却收费的软件,...
  • swagger2 注解说明

    万次阅读 多人点赞 2017-11-28 14:23:02
    swagger2 注解整体说明 @Api:用在请求的类上,表示对类的说明 tags=&amp;amp;amp;quot;说明该类的作用,可以在UI界面上看到的注解&amp;amp;amp;quot; value=&amp;amp;amp;quot;该参数没什么...
  • 关于Swagger的Swagger2MarkupConfigBuilder这个配置类如何写,还有Swagger2MarkupConverter.from(swagger)这个方法报下面这个错The type io.github.swagger2markup.Swagger2MarkupConverter$Builder cannot be ...
  • Swagger2 添加HTTP head参数

    万次阅读 多人点赞 2017-05-09 15:19:51
    大家使用swagger往往会和JWT一起使用,而一般使用jwt会将token放在head里,这样我们在使用swagger测试的时候并不方便,因为跨域问题它默认不能自定义head参数。然后自己去网上找,发现国内大多数的都是写一个Filter...
  • swagger2Demo,swagger

    2018-07-06 12:27:04
    swagger2Demo,swagger,这个是写的一个demo,用于调试接口swagger确实好用,jdk1.8的,欢迎下载,
  • Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API...

空空如也

1 2 3 4 5 ... 20
收藏数 12,631
精华内容 5,052
关键字:

swagger2