web-dev-qa-db-ja.com

Springfox @RestControllerの命名

Springfoxを使用すると、いくつかの小さな問題が発生します。 @RestControllerクラスに名前を設定できません。

Spring bootとSwagger2を使用しています。

次のコードは、Springfox uiで「rest-status-controller」という名前のコントローラーを生成します。代わりに「アプリケーションステータス」を期待していました。私が知らない別の設定はありますか?

@Api("Application Status")
@RestController
@RequestMapping("/rest/status")
public class RestStatusController {

    @ApiOperation(value="Get components current status")
    @RequestMapping(method = RequestMethod.GET, produces=MediaType.APPLICATION_JSON)
    public String global() {
    //...
    }

    @ApiOperation(value="Get mysql current status")
    @RequestMapping(value="/mysql" method = RequestMethod.GET, produces=MediaType.APPLICATION_JSON)
    public String mysql() {
    //...
    }
}
16
Barium Scoorge

@Apiアノテーションのtagsパラメータを使用して、RestControllerメソッドのグループ化の名前を変更してみてください。対応するJava Doc(短縮))からの抜粋:

/**
 * A list of tags for API documentation control.
 * Tags can be used for logical grouping of operations by resources or any other qualifier.
 */
String[] tags() default "";

あなたのケースでは、単に使用してください:

@Api(tags = "Application Status")
@RestController
@RequestMapping("/rest/status")
public class RestStatusController {
    ...
}

これにより、RestStatusControllerのすべてのドキュメント化された操作が「アプリケーションステータス」タグでグループ化されます。

25
Fabian Nack

タグと説明の両方を使用して、コントローラー名のAPIグループ化を回避します。例えば:

@Api(
  tags="Application Status.",
  description = "Provides Application Status API's.
")
3
Narendra