`

swagger构建restful文档

 
阅读更多
偶然间发现swagger的存在,瞬间感觉比postman方便简单多了。。。(当然有各自优势)

分享以下使用swagger进行单元测试的一些心得啦

what?

     swagger restful api,用来构成restful api文档的一种格式ui,用户定义服务接口

目的:

     代码结构清晰、合标准、易于理解、扩展方便


步骤:

1 引入相关jar


   
dependency>
      groupId>io.springfoxgroupId>
      artifactId>springfox-swagger2artifactId>
      version>2.2.2version>
   dependency>

   dependency>
      groupId>io.springfoxgroupId>
      artifactId>springfox-swagger-uiartifactId>
   version>2.2.2version>
   dependency>
   dependency>
      groupId>org.springframework.bootgroupId>
      artifactId>spring-boot-starter-tomcatartifactId>

dependency>

(我集成的是springboot)

2 添加swagger 的配置类

package com.example.config;

import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import springfox.documentation.builders.ApiInfoBuilder;
/**
* Swagger2配置类
* Created by lujia on 2017/7/12.
*/
@Configuration
@EnableSwagger2
public class Swagger2 {

    public Docket createTrstApi(){
        return  new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("demo"))  //只有在demo包下的才会生成swagger文档
.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();
    }

}




3 在你的Controller中需要暴露的接口添加如下配置



@ApiOperation(value = "获取用户列表")  //文档描述
@RequestMapping(value = {""},method = RequestMethod.GET)
  public List getuserlist(){
List list=new ArrayList(users.values());
  return  list;
  }
  @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获取用户详细信息")
  @ApiParam(required = true,name = "id" ,value = "用户id")  //属性描述
@RequestMapping(value = "/{id}",method = RequestMethod.GET)
  public  User getUser(@PathVariable Long id){
    return  users.get(id);
  }

  4 在你Controller中需要暴露接口的地方添加如下配置

 

static Mapusers = Collections.synchronizedMap(new HashMap());


@ApiOperation(value = "获取用户列表")  //文档描述
@RequestMapping(value = {""},method = RequestMethod.GET)
   public List getuserlist(){
  List list=new ArrayList(users.values());
   return  list;
   }
   @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获取用户详细信息")
   @ApiParam(required = true,name = "id" ,value = "用户id")  //属性描述
@RequestMapping(value = "/{id}",method = RequestMethod.GET)
   public  User getUser(@PathVariable Long id){
     return  users.get(id);
   }

@ApiOperation和@ApiParam:都是暴露出来文档的一些表述


其他表述知道MVC的应该都能知道是什么吧,就不多做解释了


5 准备工作都差不多的时候可以测试以下效果了


访问swagge的ui界面


http://127.0.0.1:1013/swagger-ui.html/

可看到如下效果图
[img]http://dl2.iteye.com/upload/attachment/0126/1899/8e0f5778-fd69-35c7-8f71-524532d16cca.png" alt="[/img]


user-controller是我们的controller, 下面是我们之前暴露的接口后面也有我们给的文档注释

那么怎么进行单元测试呢?

一、创建用户,右键右边的model,左边的框框里就出现相关信息,在把你要添加的信息输入到对应的属性
① 模块名称(EN)
② 业务名称(CN)
③ 业务名称(EN)
④ 输出路径(File)

    填写完之后在点击try it out!
[img]http://dl2.iteye.com/upload/attachment/0126/1901/140ce75d-02c2-35bd-a752-72a28e672f81.png" alt="[/img]
       try  it out  后


[img]http://dl2.iteye.com/upload/attachment/0126/1903/4eb571d3-3946-3593-a21d-9884562e28dc.png" alt="[/img]
可看到返回的结果,如Response code返回的是200 说明ok

二、 测试刚加的数据是否真的增加进去,测试方法获取用户


[img]http://dl2.iteye.com/upload/attachment/0126/1905/e9ba399f-9d69-3762-814c-af0579a3ff9b.png" alt="[/img]


可以看到返回的就是刚刚增加的数据


简单的测试就结束啦  

  • 大小: 102.2 KB
  • 大小: 52.4 KB
  • 大小: 53.3 KB
  • 大小: 23.7 KB
分享到:
评论

相关推荐

    springboot整合swagger构建Api文档

    SpringBoot整合Swagger构建API文档是一项常见的任务,尤其在开发RESTful API时,它能帮助我们快速、方便地生成在线文档,提升开发效率和协作体验。Swagger是一个强大的工具,它允许开发者通过注解来描述API接口,...

    Spring Boot中使用Swagger2构建强大的RESTful API文档

    为了解决上面这样的问题,本文将介绍RESTful API的重磅好伙伴Swagger2,它可以轻松的整合到Spring Boot中,并与Spring MVC程序配合组织出强大RESTful API文档。它既可以减少我们创建文档的工作量,同时说明内容又...

    swagger官方文档离线版

    Swagger是一个流行的API开发工具,它基于OpenAPI Specification(以前称为Swagger specification),用于设计、构建、记录和使用RESTful web服务。Swagger 2.0版本是其重要的里程碑,提供了强大的功能来定义和描述...

    Spring Boot Swagger2 构建RESTful API

    Swagger2 是一个流行的API开发工具,它允许开发者通过简洁的注解来文档化RESTful API,提供了一种友好的图形界面,使得用户可以轻松地进行API测试和交互。RESTful是一种软件架构风格,用于构建可伸缩的网络应用程序...

    Spring Boot中使用Swagger2构建RESTful APIs

    以下是对集成Swagger到Spring Boot项目中构建RESTful APIs详细知识点的阐述。 首先,Swagger通过注解的方式定义API文档,使得开发者在编写接口时就能够同时定义接口的元信息,如接口描述、请求参数、请求类型和返回...

    swagger在线文档转成word文档

    Swagger是一款流行的API文档框架,常用于构建RESTful API的交互式文档。SpringBoot是Java开发者的常用框架,它简化了Spring应用的初始搭建以及开发过程。本篇文章将详细讲解如何在SpringBoot项目中利用Swagger生成的...

    Spring Boot 中使用 Swagger2 构建 RESTful APIs

    Spring Boot 中使用 Swagger2 构建 RESTful APIs Swagger 是一系列 RESTful API 的工具,通过 Swagger 可以获得项目的交互式文档,客户端 SDK 的自动生成等功能。Swagger 的目标是为 REST APIs 定义一个标准的、与...

    Swagger搭建Restful接口.rar

    Swagger是一款强大的工具,专门用于构建、设计和文档化RESTful API。它允许开发者通过注解在代码中描述接口,然后自动生成易于理解的交互式文档,同时提供了接口的实时测试功能。Swagger的核心组件包括Swagger Core...

    Swagger与Spring结合生成Restful接口文档

    Swagger是一款强大的API文档工具,它能够帮助开发者轻松地创建、设计和构建RESTful API文档。在与Spring框架结合使用时,Swagger能自动生成接口的JSON描述,并通过UI展示成友好的文档,使得开发者和使用者都能方便地...

    springboot +swagger2 restful api

    Swagger2则是用于设计、构建、文档化和使用RESTful Web服务的优秀工具。本指南将详细介绍如何在SpringBoot项目中集成Swagger2,创建并管理RESTful API。 首先,我们需要在项目中引入Swagger2的依赖。如果你使用的是...

    swagger在线api文档搭建指南.doc

    11. Swagger在线API文档搭建指南的应用场景:Swagger在线API文档搭建指南适用于构建RESTful API、提供API文档、实现API测试等场景。 12. Swagger在线API文档搭建指南的发展趋势:Swagger在线API文档搭建指南的发展...

    第 2-9 课:使⽤ Swagger 2 构建 RESTful APIs1

    Swagger 是一个强大的 RESTful API 工具,它允许开发者通过注解的方式定义 API 的各种元数据,从而生成交互式的 API 文档,同时还能自动生成客户端 SDK。Swagger 的目标是提供一个标准化、语言无关的接口,使得无论...

    Swagger3生成API文档配置(Demo)

    Swagger3 是一个强大的工具,用于构建 RESTful 风格的 API 文档。它通过注解的方式集成到Spring Boot应用中,使得开发者可以方便地创建、测试和展示API接口。本教程将指导你如何配置 Swagger3 以生成 API 文档,并以...

    swagger文档离线导出,word、pdf、html

    Swagger 是一个广泛使用的 API 设计和文档工具,它允许开发者以结构化的方式定义 RESTful API,使得服务接口清晰易懂,同时提供了一种交互式的 API 文档系统,方便开发者测试和理解 API 功能。Swagger 文档离线导出...

    swagger-word文档生成程序.rar

    Swagger 是一个广泛使用的开源工具,主要用于构建、设计和文档化 RESTful API。它提供了一种标准的、人类可读的、机器可解析的方式来定义和理解API。Swagger JSON 格式是一种基于OpenAPI Specification (OAS) 的规范...

    swagger导出静态API文档工具

    Swagger导出静态API文档工具是基于Swagger的一个实用工具,它是一个Maven工程,这意味着我们可以利用Maven的构建生命周期来自动化文档的生成过程。 首先,让我们了解Maven。Maven是一个项目管理工具,它通过读取...

    14springboot+Swagger2构建强大的RESTful API文档1

    在本文中,我们将深入探讨如何使用SpringBoot和Swagger2构建强大的RESTful API文档。RESTful API已经成为现代Web服务的标准设计模式,它强调了资源的概念并通过HTTP操作(如GET、POST、PUT、DELETE)来处理这些资源...

    SwaggerUI+SpringMVC构建RestFulAPI的可视化界面

    SwaggerUI结合SpringMVC可以创建一个强大的RESTful API的可视化界面,这使得开发者能够更方便地测试、理解和文档化他们的API。以下是对这个主题的详细解释: Swagger 是一个广泛使用的工具,它遵循OpenAPI规范,这...

    Swagger接口导出Word.rar

    Swagger是一个流行的API文档工具,它允许开发者以结构化的方式定义和文档化RESTful API。在.NET环境中,Swagger(也称为Swashbuckle)为ASP.NET Web API提供了强大的支持,包括生成交互式的API文档。本教程将围绕...

    swagger 接口文档注释

    Swagger 是一个广泛使用的开源工具,用于设计、构建、文档化和使用 RESTful 风格的 Web 服务。在微服务分布式架构中,接口文档的重要性不言而喻,因为它能够帮助开发人员理解服务间的交互方式,提高开发效率,降低...

Global site tag (gtag.js) - Google Analytics