smart-doc在spring boot中的使用(替代swagger,无注入)

参考文档

smart-doc Java Restful API 文档生成工具_smartdoc-优快云博客

Springboot 集成Smart-Doc生成接口文档(零注解)-优快云博客

自动生成接口文档、Smart-doc(Maven插件)使用教程 - Boblim - 博客园

我们随便找一个SpringBoot的项目就可以使用,所以非常方便。

接下来我就拿我自己的一个项目举例子。

这是我生成完后的大体框架,一个简单的springboot项目

 为了使用smart-doc这个插件我们得先做好源代码的准备:

书写注解

如图所示,我们得向对应的controller总接口和分接口 书写注解,注解的样式如图所示

/**
 * 点赞、收藏等行为控制器
 */


/**
 * 获取单个用户的对应博客的所有行为
 * @return
 * @param  blogId 博客ID
 * @param  openid 微信ID
 */

 我们需要为每个controller书写相应的注解

之后我们还得去为每个实体类pojo书写相应的注解去确定表单

如下所示的代码

package com.example.blog_post.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 行为表
 *
 * @author wuhan
 * @date 2024/11/29
 */
//使用@Data自动生成需要的get、set
@Data
//使用@AllArgsConstructor自动生成有参构造
@AllArgsConstructor
//使用@NoArgsConstructor自动生成无参构造
@NoArgsConstructor
public class Behavior {
    private Long id;
    private Long blogId;
    private String openid;
    private Boolean isFavorite;
    private Boolean isApproved;
    private Boolean isDisapproved;
}

 这样我们就完成了源代码的准备了,之后我们需要去导依赖的需要的json串。

依赖pom.xml

        <dependency>
            <groupId>com.github.shalousun</groupId>
            <artifactId>smart-doc</artifactId>
            <version>1.1</version>
            <scope>test</scope>
        </dependency>

构建pom.xml

            <plugin>
                <groupId>com.github.shalousun</groupId>
                <artifactId>smart-doc-maven-plugin</artifactId>
                <version>2.4.8</version>
                <configuration>
                    <!--指定生成文档的使用的配置文件,配置文件放在自己的项目中-->
                    <configFile>./src/main/resources/smart-doc.json</configFile>
                    <!--指定项目名称,推荐使用动态参数,例如${project.description}-->
                    <!--如果smart-doc.json中和此处都未设置projectName,2.3.4开始,插件自动采用pom中的projectName作为设置-->
                    <!--<projectName>${project.description}</projectName>-->
                    <!--smart-doc实现自动分析依赖树加载第三方依赖的源码,如果一些框架依赖库加载不到导致报错,这时请使用excludes排除掉-->
                    <excludes>
                        <!--格式为:groupId:artifactId;参考如下-->
                        <!--也可以支持正则式如:com.alibaba:.* -->
                        <exclude>com.alibaba:fastjson</exclude>
                    </excludes>
                    <!--includes配置用于配置加载外部依赖源码,配置后插件会按照配置项加载外部源代码而不是自动加载所有,因此使用时需要注意-->
                    <!--smart-doc能自动分析依赖树加载所有依赖源码,原则上会影响文档构建效率,因此你可以使用includes来让插件加载你配置的组件-->
                    <includes>
                        <!--格式为:groupId:artifactId;参考如下-->
                        <!--也可以支持正则式如:com.alibaba:.* -->
                        <include>com.alibaba:fastjson</include>
                    </includes>
                </configuration>
                <executions>
                    <execution>
                        <!--如果不需要在执行编译时启动smart-doc,则将phase注释掉-->
                        <phase>compile</phase>
                        <goals>
                            <!--smart-doc提供了html、openapi、markdown等goal,可按需配置-->
                            <goal>html</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

之后我们需要去resource路径下去创建一个json文件叫smart-doc.json

{
  "serverUrl": "http://127.0.0.1:8080/api-demo/",
  "isStrict": false,
  "allInOne": true,
  "coverOld": true,
  "packageFilters": "",
  "outPath": "src/main/resources/static/doc",
  "md5EncryptedHtmlName": false,
  "projectName": "CMP基础服务API文档",
  "showAuthor":true,
  "dataDictionaries": [
    {
      "title": "状态字典",
      "enumClassName": "cn.xx.docStatusEnum",
      "codeField": "key",
      "descField": "value"
    }
  ]
}

创建完后我们便可以去maven里找到了

启动smart-doc:html后我们可以在resource的资源路径下得到一堆文件,其中打开index.html我们便能得到以下文档

 

我觉得是比swagger方便快捷的,而且可以不关联当前项目直接把html部署到网站上,而且支持的形式也非常多,例如还有markdown的格式。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值