1. 程式人生 > 其它 >Spring Boot整合JApiDocs實現API文件 & RESTful風格介面

Spring Boot整合JApiDocs實現API文件 & RESTful風格介面

JApiDocs,相當人性化和簡潔好用的介面文件生成器,比Swagger用起來爽多了。

對Swagger相當不爽的兩點,一是要大量寫各種註解,二是很被詬病的一點,對返回物件的描述相當不人性化(雖然可以寫程式碼來實現,但不爽)。

在大部分時候,我們其實只關注介面的4個方面: 介面功能描述、介面URL、提交引數說明、返回結果說明
JApiDocs完美的滿足上面的基本要求,見下圖:

介面文件生成器——JApiDocs,JApiDocs官網教程相當棒:https://japidocs.agilestudio.cn/#/zh-cn/

下面的步驟是大量照搬JApiDocs官網的內容。

第一步:新增依賴

通過IDEA建立Spring Boot,在建立工程時,可以把web依賴勾選上(不勾選也沒關係,後面在pom.xml中再新增也行)。

<dependency> 
    <groupId>io.github.yedaxia</groupId> 
    <artifactId>japidocs</artifactId> 
    <version>1.4.4</version> 
</dependency>

第二步:配置引數

在任意一個main入口執行下面的程式碼,我是直接寫在Spring Boot的啟動類中的,如下:

package com.jcj.japidemo;
import io.github.yedaxia.apidocs.Docs;
import io.github.yedaxia.apidocs.DocsConfig;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class JapidemoApplication
{
    public static void main(String[] args)
    {
        SpringApplication.run(JapidemoApplication.class, args);

        //JApiDocs 配置引數
        DocsConfig config = new DocsConfig();
        config.setProjectPath("C:\\IdeaProjects\\japidemo"); // 專案根目錄
        config.setProjectName("japidemo"); // 專案名稱
        config.setApiVersion("V1.0");       // 宣告該API的版本
        config.setDocsPath("C:\\IdeaProjects\\japidemo\\apidoc"); // 生成API 文件所在目錄
        config.setAutoGenerate(Boolean.TRUE);  // 配置自動生成
        Docs.buildHtmlDocs(config); // 執行生成文件
    }
}

所有的工作就做完了!相當Easy

在編碼時,你只需注意編碼規範,,順手寫好必要的註釋就行了,那麼介面文件就能自動生成,不用加任何註解。

1. 類上加註釋(不是註解)

“使用者介面”註釋會顯示為左側樹形目錄的根目錄

/**
 * 使用者介面
 * @Auther: 江成軍
 * @Date: 2021/8/22 22:16
 */
@RestController
@RequestMapping(value="/apiuser")
public class UserController
{
	...
}
2. 方法上加註釋(不是註解)

"使用者介面"會顯示為左側導航樹的目錄,@description會顯示為副標題,每一個引數對應一個@param

/**
    * 使用者詳情(RESTFul方式)
    * @description 根據姓名,年齡查詢使用者詳情,url中只需傳值
    * @param name 姓名
    * @param age 年齡
    * @Author 江成軍
    * @Date 2021/8/22 23:32
    **/
    @GetMapping(value="/users/{name}/{age}")
    public Result<User> userDetail2(@PathVariable String name, @PathVariable int age)
    {
        System.out.println(name+","+age);

        Result result=new Result();
        User u1=new User();
        u1.setName("張三");
        u1.setAge(23);
        u1.setWeight(122.6f);

        result.setCode(200);
        result.setMessage("更新成功");
        result.setData(u1);

        return result;
    }

生成的介面描述顯示見下圖:

3. 實體類上加註釋(不是註解)

直接在屬性上面加註釋就行了,用//或者*註釋都行,我比較喜歡用//,見下圖:


這樣在返回結果上面,直接就會清楚明瞭的顯示:

WEB專案開發中碰到的問題千奇百怪,大家想了解對如何快速的掌握Spring Boot,可以參見視訊:

51CTO:Spring Boot+Bootstrap開發小而完整web專案
騰訊課堂:Spring Boot+Bootstrap開發小而完整web專案
CSDN學院:Spring Boot+Bootstrap開發小而完整web專案
網易雲課堂:Spring Boot+Bootstrap開發小而完整web專案