swagger简介

一、swagger****的作用

根据在代码中使用自定义的注解来生成接口文档,这个在前后端分离的项目中很重要。这样做的好处是 在开发接口时可以通过swagger 将接口文档定义好,同时也方便以后的维护。

在没有swagger之前,我们可以使用word,excel等功能来书写接口定义文档,但又有一个弊端,即: 在接口发送改变时需要及时的同步接口文档,否则实际的接口与接口文档不相符,则接口文件就失去了作用,甚至会起到反作用。

二、swagger****的优点

号称时最流行的 API 框架

接口文档在线生成,避免同步的麻烦

可以支持在线对接口执行测试

支持多语言

三、SpringBoot集成swagger

1.导入依赖

io.springfox

springfox-swagger2

2.9.2

io.springfox

springfox-swagger-ui

2.9.2

2. swagger配置类

package com.zking.mini_program.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.builders.ApiInfoBuilder;
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;

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket createRestApi(){
        return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())
                .select() .apis(RequestHandlerSelectors.withClassAnnotation(RestController.class))
                .paths(PathSelectors.ant("/swaggerdemo/**"))
                .build();
    }
    private ApiInfo apiInfo(){
        return new ApiInfoBuilder()
                .title("SwaggerDemo API DOC")
                .description("SwaggerDemo API DOC")
                .version("1.0") .termsOfServiceUrl("https://www.baidu.com") .build(); }
}

3.写好后启动项目

访问路径

Swagger UI

4.携带数据发送请求

5.响应结果

四、常用注解

例如:在类上注解

html中

先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

<think>好的,我现在需要处理用户关于Swagger API文档工具的使用指南的请求。首先,用户明确提到想了解Swagger或查找相关技术资料,特别是使用指南。根据用户提供的系统级指令,我需要确保回答结构清晰,使用中文,正确应用LaTeX格式,并生成相关问题。同时,用户的历史引用中有两篇关于Swagger的文章,我需要参考这些内容,但也要注意用户指出这些引用并非真实需求,可能需要更多依赖之前的互动,不过当前对话中用户只提到了这两篇,所以得合理利用。 首先,我应该先确定用户的需求层次。他们可能希望了解Swagger的基本概念、如何安装配置、如何编写API文档以及相关工具的使用,比如生成离线文档。根据引用[1],Swagger用于创建和管理RESTful API文档,提供交互式测试界面。引用[2]提到一个离线工具,可以转换在线文档为HTML或Markdown。因此,在回答中需要涵盖基础使用步骤,并可能提到离线工具作为扩展内容。 接下来,我需要按照用户的要求分步骤说明,结构清晰。可能需要分为以下几个部分:1. Swagger简介;2. 安装与配置;3. 编写API文档;4. 生成离线文档。每个部分需要简明扼要,同时嵌入引用标记。例如,在介绍Swagger时引用[^1],在离线工具部分引用[^2]。 另外,需要注意LaTeX格式的应用。比如,变量或技术术语如YAML文件是否需要使用行内数学表达式?可能不需要,但如果有示例代码中的路径或文件名,可能需要用代码块而非LaTeX。用户要求行内数学表达式用$...$,但技术文档中的代码部分应使用代码块,如示例中的Python代码。因此,在回答中,我会正确使用代码块和LaTeX,比如在提到数学公式时使用,但可能在这个主题下数学公式较少,更多是代码示例。 生成相关问题部分,需要考虑用户可能进一步询问的内容,比如Swagger UI的定制、安全配置、与其他工具的对比、离线文档工具的具体使用步骤等。需要确保问题覆盖用户可能感兴趣的扩展话题。 最后,检查是否符合所有系统指令:中文回答、正确格式、引用标识自然、相关问题生成。需要确保没有使用Markdown格式,除了代码块,但用户示例中的代码块使用了```python,所以可能允许。同时,回答中的引用标识应放在相关段落末尾,如[^1]和[^2]。</think>### Swagger API 文档工具使用指南 #### 1. Swagger 简介 Swagger(现称为 OpenAPI 规范)是一套用于设计、构建和记录 RESTful API 的开源工具集。它通过标准化的 YAML/JSON 格式描述 API 结构,并提供交互式界面$^{[^1]}$。核心功能包括: - **API 设计**:使用 `swagger.yaml` 或 `swagger.json` 定义接口 - **文档生成**:自动生成可读性强的 HTML 页面 - **接口测试**:直接在浏览器中模拟 API 调用 #### 2. 安装与配置 以 Node.js 环境为例: ```bash # 安装 Swagger 命令行工具 npm install -g swagger # 初始化项目 swagger project create my-api ``` 配置文件 `config/default.yaml` 中可设置服务器端口、数据库连接等参数$^{[^1]}$。 #### 3. 编写 API 文档 创建 `api/swagger/swagger.yaml` 文件: ```yaml swagger: "2.0" info: title: 用户管理系统 version: 1.0.0 paths: /users: get: summary: 获取用户列表 responses: 200: description: 成功返回用户列表 ``` #### 4. 生成离线文档 使用 SwaggerOfflineDoc 工具转换在线文档为离线格式$^{[^2]}$: ```bash # 下载工具 git clone https://github.com/example/SwaggerOfflineDoc # 生成 HTML 文档 python convert.py --input http://api.example.com/swagger.json --format html ``` #### 5. 高级功能 - **安全定义**:添加 OAuth2/JWT 认证 ```yaml securityDefinitions: Bearer: type: apiKey name: Authorization in: header ``` - **数据模型**:定义可复用的数据结构 ```yaml definitions: User: type: object properties: id: type: integer name: type: string ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值