ホームページ  >  記事  >  Java  >  SpringBoot は Swagger2 を統合してインターフェイス ドキュメントを生成します。母は、私が API ドキュメントを作成することを心配する必要がなくなりました。

SpringBoot は Swagger2 を統合してインターフェイス ドキュメントを生成します。母は、私が API ドキュメントを作成することを心配する必要がなくなりました。

做棵大树
做棵大树オリジナル
2020-05-26 18:36:23144ブラウズ

現在の開発プロセスでは、基本的に API インターフェイスを使用してシステムが開発されているため、このプロセスでは、優れた API ドキュメントがバックエンドとフロントエンド間の通信と開発の重要な橋渡しとなっています。

従来のアプローチでは、開発者は RESTful API ドキュメントを作成してすべてのインターフェイスの詳細を記録しますが、正直に言うと、このような作業負荷は小さくなく、プロジェクトが更新されると次の問題が発生します。

  • ドキュメントを維持するのは困難です。

  • インターフェースの内容がより複雑になり、書き込み効率が低くなります。

Swagger は、標準化された完全なフレームワークとして、RESTful スタイルの Web サービスを生成、記述、呼び出し、視覚化するために使用できます。

Swagger を通じて、プロセス API インターフェイス ドキュメントでインターフェイスを開発できます。アノテーションを使用して自動的に生成/更新され、インターフェイスのデバッグはドキュメント ページでサポートされています。

次に、Swagger2 (2 はバージョンを表します) を SpringBoot に統合する方法について簡単に説明します

Swagger2 の依存関係を導入します

<dependencies>
        <!--Swagger2 在此,个人推荐使用2.8.0版本,较为稳定-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.8.0</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.8.0</version>
        </dependency>
</dependencies>

application.yml

構成ファイル

@Configuration
// 指定扫描的api包路径
@ComponentScan(basePackages = {"cn.beatree.xxx.controller"})
//注解开启 swagger2 功能
@EnableSwagger2
public class Swagger2Config {
    @Value("${swagger2.enable}")
    boolean enable;
    // 配置文件中通过值注入控制生产环境与开发环境下的启用状态
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .enable(enable)
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any())
                .build();
    }
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("ANONVOTE | Swagger API文档")//标题
                .description("description: ANONVOTE | Swagger API文档")//描述
                .contact("BEATREE")//作者信息
                .version("1.0.0")//版本号
                .build();
    }
}

@Configuration

注釈、構成クラスとして指定されており、SpringBoot の起動時にロードされます。 Swagger2 を有効にするための

@EnableSwagger2 アノテーション。

メンバーメソッド

createRestApi関数はDocket Bean、

apiInfo()

を作成します API の作成に使用される基本情報 (これらの基本情報はドキュメント ページに表示されます)。 select() 関数は ApiSelectorBuilder を返します。 このインスタンスは、表示のために Swagger に公開されるインターフェイスを制御するために使用されます。このインスタンスは、Swagger がパッケージ内のすべてのコントローラーをスキャンすることを指定することによって定義されます。 API を定義し、ドキュメントのコンテンツを生成します (@ApiIgnore によって指定されたリクエストを除く)。 一般的に使用される Swagger アノテーション@Api

: クラス全体を変更し、コントローラーの役割を記述します

@ApiOperation: クラスまたはインターフェイスのメソッドを記述します

@ ApiParam : 単一パラメータの記述 @ApiModel: オブジェクトを使用してパラメータを受け取る

@ApiProperty: オブジェクトを使用してパラメータを受け取る場合、オブジェクトのフィールドを記述します

@ApiResponse: 次のいずれかHTTP レスポンスの説明

@ApiResponses: HTTP レスポンスの全体的な説明

@ApiIgnore: この API を無視するには、このアノテーションを使用します

@ApiError : エラーが発生したときに返される情報

@ApiImplicit Param:リクエストパラメータを記述します。パラメータの中国語の意味を設定でき、パラメータのデフォルト値も設定できます。

@ApiImplicitParams:リクエストパラメータを記述します。複数の

@ApiImplicitParam アノテーション付きパラメータで構成されるリスト

Chestnut

swagger2:
  enable: false #true 启用
最後に、SpringBoot プロジェクトを実行した後、サーバー アドレス /swagger-ui.html

を介してアクセスします。

パス インターセプターが追加されている場合は、

@RestController
@Transactional    // 事务注解,实现回滚
@RequestMapping("/api/tlink")
@Api(value = "/api/tlink", tags = "参与者相关接口")
public class TlinkController{
    @GetMapping("/checkCode/{code}")
    @ApiOperation(value = "投票认证码核验接口",
            notes = "该接口用于核验认证码合法性,对于投票主题内容的获取需后续调用Topic相关接口。返回值data中带有参数 topic & options")
    public JSONObject checkCode(@PathVariable("code") String code){
  ...
 }
}

を通じてスワッガー パスを解放する必要があることに注意してください。

以上がSpringBoot は Swagger2 を統合してインターフェイス ドキュメントを生成します。母は、私が API ドキュメントを作成することを心配する必要がなくなりました。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。