Swagger使用

Swagger

使用文档

G-SISI

2016-04-05 

一、概述

     swagger简述

Swagger API框架,用于管理项目中API接口,属当前最流行的API接口管理工具。 Swagger是一个开源框架(Web框架),功能强大,UI界面漂亮,支持在线测试!

Swagger的目标是对REST API定义一个标准的和语言无关的接口,可让人和计算机无需访问源码、文档或网络流量监测就可以发现和理解服务的能力。当通过Swagger进行正确定义,用户可以理解远程服务并使用最少实现逻辑与远程服务进行交互。与为底层编程所实现的接口类似,Swagger消除了调用服务时可能会有的猜测。

Swagger是一组开源项目,主要项目如下:

Swagger-tools:提供各种与Swagger进行集成和交互的工具。例如模式检验、Swagger 1.2文档转换成Swagger 2.0文档等功能。

Swagger-core: 用于Java/Scala的的Swagger实现。与JAX-RS(Jersey、Resteasy、CXF...)、Servlets和Play框架进行集成。

Swagger-js: 用于JavaScript的Swagger实现。

Swagger-node-express: Swagger模块,用于node.js的Express web应用框架。

Swagger-ui:一个无依赖的HTML、JS和CSS集合,可以为Swagger兼容API动态生成优雅文档。

Swagger-codegen:一个模板驱动引擎,通过分析用户Swagger资源声明以各种语言生成客户端代码。

Swagger-editor:可让使用者在浏览器里以YAML格式编辑Swagger API规范并实时预览文档。可以生成有效的Swagger JSON描述,并用于所有Swagger工具(代码生成、文档等等)中。


 

 

我们需要的:

1、Swagger可视化界面

Swagger-ui

              2、相关jar包

classmate-1.1.0.jar、

guava-15.0.jar、

jackson-annotations-2.0.4.jar、

jackson-core-2.1.1.jar、

jackson-databind-2.1.1.jar、

jackson-jaxrs-json-provider-2.0.0.jar、

jackson-module-jaxb-annotations-2.0.0.jar、

jackson-module-scala-2.0.0.jar、

swagger-annotations-1.3.11.jar、

swagger-models-1.0.2.jar、

swagger-springmvc-1.0.2.jar

3、Maven依赖

    <dependency>

       <groupId>com.mangofactory</groupId>

       <artifactId>swagger-springmvc</artifactId>

        <version>1.0.2</version>

    </dependency>

    <dependency>

       <groupId>com.mangofactory</groupId>

        <artifactId>swagger-models</artifactId>

        <version>1.0.2</version>

    </dependency>

    <dependency>

       <groupId>com.wordnik</groupId>

       <artifactId>swagger-annotations</artifactId>

        <version>1.3.11</version>

    </dependency>

    <dependency>

       <groupId>com.google.guava</groupId>

       <artifactId>guava</artifactId>

        <version>15.0</version>

    </dependency>

    <dependency>

       <groupId>com.fasterxml.jackson.core</groupId>

       <artifactId>jackson-annotations</artifactId>

        <version>2.0.4</version>

    </dependency>

    <dependency>

       <groupId>com.fasterxml.jackson.core</groupId>

       <artifactId>jackson-databind</artifactId>

        <version>2.1.1</version>

    </dependency>

    <dependency>

       <groupId>com.fasterxml.jackson.core</groupId>

       <artifactId>jackson-core</artifactId>

        <version>2.1.1</version>

    </dependency>

    <dependency>

       <groupId>com.fasterxml.jackson.core</groupId>

       <artifactId>jackson-jaxrs-json-provider</artifactId>

        <version>2.0.0</version>

    </dependency>

    <dependency>

       <groupId>com.fasterxml.jackson.core</groupId>

       <artifactId>jackson-module-jaxb-annotations</artifactId>

        <version>2.0.0</version>

    </dependency>

    <dependency>

       <groupId>com.fasterxml.jackson.core</groupId>

       <artifactId>jackson-module-scala</artifactId>

        <version>2.0.0</version>

    </dependency>

    <dependency>

       <groupId>com.fasterxml</groupId>

        <artifactId>classmate</artifactId>

        <version>1.1.0</version>

    </dependency>

 注:最后3个jackson的包如果maven路径错误,自行去查找,我的Demo不是Maven项目

二、使用方法

       Demo配置:SpringMVC+Swagger+...

    详细步骤

Step 1

解压Swagger-ui,找到里面的dist文件夹,将dist里面的所有文件copy到webapps下面,或者WEB-INF下。

当然你也可以建个文件夹来放这些文件,比如我建了swagger文件夹来放这些东西。


Step 2

创建加载文件 SwaggerConfig.java(名称可以随意取)


SwaggerConfig.java

/**

 * @Author G-SISI2016年4月6日

 * @By

 * @Site

 */

import org.springframework.context.annotation.Configuration;

importorg.springframework.beans.factory.annotation.Autowired;

importorg.springframework.context.annotation.Bean;

importcom.mangofactory.swagger.configuration.SpringSwaggerConfig;

importcom.mangofactory.swagger.models.dto.ApiInfo;

importcom.mangofactory.swagger.plugin.EnableSwagger;

importcom.mangofactory.swagger.plugin.SwaggerSpringMvcPlugin;

@Configuration

@EnableSwagger

public class SwaggerConfig

{

    private SpringSwaggerConfig springSwaggerConfig;

    /**

     * Required to autowireSpringSwaggerConfig

     */

    @Autowired

    public void setSpringSwaggerConfig(SpringSwaggerConfig springSwaggerConfig)

    {

       this.springSwaggerConfig = springSwaggerConfig;

    }

    /**

     * EverySwaggerSpringMvcPlugin bean is picked up by the swagger-mvc

     * framework - allowing for multiple swagger groups i.e. samecode base

     * multipleswagger resource listings.

     */

    @Bean

    public SwaggerSpringMvcPlugin customImplementation()

    {

       return new SwaggerSpringMvcPlugin(this.springSwaggerConfig)

       .apiInfo(apiInfo())

       .includePatterns(".*?");

    }

    private ApiInfo apiInfo()

    {

       ApiInfo apiInfo = newApiInfo(

                "==DemoProject Api Document==",

                "写点什么",

                "写点什么",

                "写点什么",

                "写点什么",

                "写点什么");

       returnapiInfo;

    }

}

Step 3

添加配置


注:调度器拦截,Demo在这里吃了亏,浪费了不少时间,定义默认的servlet映射;

原来是定义的是*.do,导致Swagger无法读取Json报Can`t read swagger JSON from …



Step 4

测试类


注解说明:

@Api(value=”/fc”description=”首页”)

说明:@Api表示可执行测试的开放Api;value:表示请求地址,与@RequestMapping映射请求地址一致;Description表示对该Api进行描述

@ApiOperation(value=“接口说明”,httpMethod = “接口请求方式”, response = “接口返回参数类型”, notes = “接口发布说明”;)
@ApiParam(required = “是否必须参数(true orfalse)”, name = “参数名称”, value =“参数具体描述”)

     最终界面

输入相应值,点 Try it out! 进行测试



我这边路径是错误的,所以跳转到我的404页面,修改下路径就好了。



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Swagger是一个用于设计、构建和文档化RESTful Web服务的开源工具集。下面是一个简单的Swagger使用教程: 1. 安装Swagger:可以通过npm、pip等包管理工具安装Swagger相关的库和工具。例如,对于Node.js项目,可以使用以下命令安装swagger-jsdoc和swagger-ui-express: ```bash npm install swagger-jsdoc swagger-ui-express ``` 2. 编写Swagger注解:在你的API代码中,使用Swagger注解来描述API的信息、请求和响应参数等。以下是一个示例: ```javascript /** * @swagger * /api/users: * get: * summary: 获取所有用户 * description: 获取所有用户列表 * responses: * 200: * description: 成功获取用户列表 * schema: * type: array * items: * $ref: '#/definitions/User' */ ``` 在这个示例中,我们使用Swagger注解来描述一个GET请求,它可以获取所有用户的列表。 3. 生成Swagger文档使用Swagger注解编写完API代码后,可以使用相应的工具将这些注解转换为Swagger文档。例如,对于Node.js项目,我们可以使用swagger-jsdoc库生成Swagger文档。在项目的入口文件中添加以下代码: ```javascript const swaggerJSDoc = require('swagger-jsdoc'); const swaggerUi = require('swagger-ui-express'); const options = { definition: { openapi: '3.0.0', info: { title: 'API文档', version: '1.0.0', }, }, apis: ['./path/to/api/controllers/*.js'], // API代码文件的路径 }; const swaggerSpec = swaggerJSDoc(options); app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerSpec)); ``` 这段代码将会在`/api-docs`路径下提供Swagger文档。 4. 查看Swagger文档:运行项目并访问`/api-docs`路径,你将会看到生成的Swagger文档Swagger提供了一个交互式的UI界面,可以方便地查看API的信息、请求和响应参数等。 这只是一个简单的Swagger使用教程,你可以根据自己的项目需求进一步深入学习和使用Swagger

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值