ミニマルなJavaのRESTfulなAPIドキュメントツールsmalldoc

プロジェクト

なぜホイールを作成しますか?

  • OCDは、受け入れることができない闊歩侵入コードのすべての種類は、クリーンなコードへのより多くの熱心な原因とごちゃ混ぜのメモを。
  • 注釈は、いくつかの学習コストがかかる使用します。
  • そして、使用しようApidocを Apidocは、ドキュメントを生成したコメントに基づいているが、しかし、学習のコストを削減していない、あなたは追加のコメント学ぶ必要があるタグを、あなたはこれらの特別な使用する必要があるタグを手動でインターフェイスする必要がある関連情報を書き出します、感じます大幅に書かれた文書の作業負荷を軽減しませんでした。
  • そこドキュメントの標準ベースのJavaプロジェクトを生成するためのいくつかのコメントにもありますが、いくつかは、実際のパラメータ、型変数、マルチモジュールの依存関係、あまりにもいくつかのバグをサポートすることはできません、UIインターフェースでも、論理的に問題に対処があり、あまりにも複雑で、友好的ではありません。

プロパティ

  • 仕様のコメントとコメント習慣の開発者を確保しながら、コードのクリーンを確保するために、Javaソースコードだけでなく、ドキュメントを生成するための標準的なコメントタグなしコード浸潤、に基づいて、
  • これは、フレンドリーデフォルトのUIを提供しています
  • これは、ドキュメントRESTEful API、カスタムUIを実装するためのサポートを提供します
  • 標準化された構成を提供することで、より便利に
  • 伝統的な春のスプリング・ブートの両方をサポートし、対応する春・ブート・スターターを提供
  • サポート・パラメータ関連するエンティティ
  • ジェネリックのサポート
  • サポートは、引数を省略します
  • サポート無視決意指定されたパッケージ型パラメータまたは指定されたデータ構造
  • これは、(指定されたソースパケットまたはデータ構造から解析JAR)マルチモジュール・プログラムをサポート

実装

  • ソースファイル、ソースコード内の彼らのコメントによって生成された文書情報を解析します。カスタムの処理中に、ユーザー定義のタグ、タグ - これまでタグの使用タグJavaアノテーションのコメントが標準装備され、フォローアップは、いくつかのカスタムタグを追加する必要があるかもしれない、タグ拡張メカニズムを提供することも可能です。

  • JavaのRESTfulなAPIドキュメントを生成するという考えは、すべての最初は、Java APIドキュメントを生成する方法を考え、これを使用する選択肢のソース解決する方法はありませんcom.github.javaparser » javaparser-corecom.thoughtworks.qdox » qdox、JDKを所有する代わりに、選択のJavadocツールdocs.oracle.com/en/java/javは... APIに対応するツールがあるのJavadoc APIdocs.oracle.com/en/java/jav ...

  • 著者が使用中であるのでJava8、そのプロジェクトの実現は完全に基づいているのJavadoc APIのレガシー

    どこで:

    モジュール jdk.javadocのパッケージ com.sun.tools.javadocこのパッケージとその内容が廃止され、将来のリリースで除去することができます。javax.toolsを参照してください。ToolProvider.getSystemDocumentationTooljavax.tools.DocumentationTool置換機能のために。

    モジュール jdk.javadocのパッケージするcom.sun.javadoc 注:このパッケージの宣言は、パッケージのものに取って代わられていjdk.javadoc.doclet詳細については、そのパッケージのドキュメントの移行ガイドを参照してください。

    @Deprecated(since="9",forRemoval=true)
    public class Main extends Object
    复制代码

    これは、レガシーのJavadoc APIから見ることができJava9は、最新のメジャーバージョンまでは、捨てられたとマークされており、近い将来に削除されますが、幸いJava12 APIが削除されていないので、使用Java12をして、以前のバージョンのユーザーは安心することができますサポートを提供する新しいAPIのフォローアップを使用しています。

  • UIインターフェイスが基づいている作成-反応アプリantd開発ページファイルのアプリケーションSINGLE - smalldoc-antd-UI-REACTgithub.com/liuhuagui/s ...

使用

春ブートプログラムの例としては、使用してapplication.yml設定ファイルとして

依存性の導入
<dependency>
    <groupId>com.github.liuhuagui</groupId>
    <artifactId>smalldoc-spring-boot-starter</artifactId>
    <version>2.3</version>
</dependency>
复制代码
コンフィギュレーション

通常、開発に使用されるインターフェイスのドキュメントは、文書のみが、開発環境での構成を検証することを確認する必要があります - spring.profiles.active=dev

server: 
  port: 8080
  servlet:
    context-path: /my-project
spring: 
  profiles:
    active: dev
---
spring:
  profiles: dev
smalldoc:
  source-paths: #额外的源码路径(项目的源码路径默认已经包含在内,不需要再添加)
    - 'D:\Workspaces\myBeanProject\my-bean\src\main\java'
    - 'D:\Maven\Repositories\repository\com\aliyun\aliyun-java-sdk-core\3.5.0'
  packages:
    - quantity.knowledgebase
    - my.bean
    - com.aliyuncs.auth.sts
  project-name: 我的文档
  enabled: true #默认为true
  url-pattern: /smalldoc/* #默认为/smalldoc/*
复制代码
アクセスアドレス
  • URL: http://192.168.1.76:8080/my-project/smalldoc/
  • METHOD: GET
インターフェイスのソース
/**
 * 文章的创建,编辑,发布,自定义
 * @author KaiKang [email protected]
 */
@RestController
@RequestMapping("w")
public class WriteArticleController {
    /**
     * 原创文章在编辑中保存
     * @param content 内容
     * @param oaCopy  原创文章副本
     * @return data-草稿ID
     * @author KaiKang [email protected]
     */
    @PostMapping(path = "o/save_draft",produces = {"text/plain", "application/json;charset=UTF-8"},consumes = "application/x-www-form-urlencoded")
    public Result<Long> saveOriginalDraft(String content, OriginalArticleCopy oaCopy, HttpServletRequest request) {
        return writeArticleService.saveOriginalDraft(content, oaCopy);
    }

    /**
     * 这只是一个测试接口
     * @param content 内容
     * @return 返回数据
     * @author KaiKang [email protected]
     */
    @GetMapping(path = "o/save",produces = {"text/plain", "application/json;charset=UTF-8"})
    public Result<OriginalArticle> save(String content, HttpServletRequest request) {
        return null;
    }
}
复制代码
ドキュメントインターフェイス

ここに画像を挿入説明
ここに画像を挿入説明
ここに画像を挿入説明

ドキュメントAPI(カスタムUIを実装するために使用)
  • URL: http://192.168.1.76:8080/my-project/smalldoc/
  • METHOD: POST
    ここに画像を挿入説明

注意を払います

  • ソースパスの設定項目の追加のソースパスを表し、プロジェクトのデフォルトのソースパスが含まれている、追加のアドオンは、パッケージの走査を指定する必要がない、など。my.project.controller
  • 名前のプログラムは、クラス解決される*Controllerのソースコードのインタフェース情報(仕様)
  • プロジェクトの展開パッケージの前に、文書の機能を閉じることを忘れないでください、Linux環境をサポートするためのプログラムを書く、など、さまざまな方法を閉じました。
    1. spring.profiles.active=**限りDEVができないので)、もはや開発環境の設定を有効ありません
    2. smalldoc.enabled=false、オンオフ
    3. スコープが依存する修正test前のパッケージ、そうでもsmalldocのjarパッケージには、アカウント(推奨)にパッケージ化されることはありません
       <dependency>
         	<groupId>com.github.liuhuagui</groupId>
         	<artifactId>smalldoc-spring-boot-starter</artifactId>
         	<version>2.3</version>
         	<scope>test</scope>
       </dependency>
      复制代码

コミュニティ

あなたは助けを必要とするか、いくつかの機能を追加するプロジェクトにしたい場合は、コースで歓迎の問題- github.com/liuhuagui/s ...

おすすめ

転載: juejin.im/post/5da701a9e51d4524d55484ce