SpringMVC での swagger2 の使用

swagger は、API ドキュメント生成ツールです。商用プロジェクトを作成する場合、各プロジェクトは、フロントエンドとバックエンドの分離プロジェクトなど、他のプロジェクトの API インターフェイスを呼び出す必要がある場合があります。この場合、API ドキュメントを作成する必要があります。 、プログラマは自分自身を最も嫌います。他の人が書かないものを書くと、Swagger はプロジェクトに設定された注釈に基づいてドキュメントを自動的に生成し、この小さなものを追加し始めます

jarパッケージの導入

 <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.4.0</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.4.0</version>
    </dependency>

構成の追加

SwaggerConfig 構成クラスの作成

@EnableWebMvc
@EnableSwagger2
@Configuration
public class SwaggerConfig extends WebMvcConfigurationSupport {

	/**
	 * 通过createRestApi函数创建Docket的Bean之后,
	 * apiInfo()用来创建该Api的基本信息(这些基本信息会展现在文档页面中)
	 * select()函数返回一个ApiSelectorBuilder实例用来控制哪些接口暴露给Swagger来展现,
	 * apis()函数扫描所有Controller中定义的API, 并产生文档内容(除了被@ApiIgnore指定的请求)
	 * @return
	 */
	@Bean
	public Docket createRestApi() {

		return new Docket(DocumentationType.SWAGGER_2)
//				.globalOperationParameters(operationParameters)
				.apiInfo(apiInfo())
				.select()
				.apis(RequestHandlerSelectors.any())
				.paths(PathSelectors.any())
				.build();
		
	}

	/**
	 * 创建该Api的基本信息(这些基本信息会展现在文档页面中)
	 * @return
	 */
	private ApiInfo apiInfo() {
		return new ApiInfoBuilder()
				.title("标题")
				.termsOfServiceUrl("http://www.itrip.com/auth")
				.contact("[email protected]")
				.version("1.0")
				.build();
	}
}

springMVC設定ファイルの追加に注意してください

<mvc:resources mapping="swagger-ui.html" location="classpath:/META-INF/resources/" />

傍受を避ける

使用

アノテーションを使用して
@Api(tags = "Class") =》 クラスを宣言
@ApiOperation(value = "インターフェイス名", Notes = "インターフェイスの説明", httpMethod = "送信メソッド") =》 インターフェイスを宣言
@ ApiParam(value = "パラメータ名", name = "パラメータ名") => パラメータを宣言

例:

@Controller
@Api(tags = "UserController")
public class UserInfoController {

    @Autowired
    private UserInfoService userInfoService;

    @ApiOperation(value = "接口名",notes = "接口描述",httpMethod = "post")
    @RequestMapping(value="login",method= RequestMethod.POST)
    @ResponseBody
    public Dto login(
			@RequestParam("userCode")
			@ApiParam(value = "参数说明",name = "参数名") String userCode){

        ItripUser user = userInfoService.getUserInfo(userCode);

        return DtoUtil.returnDataSuccess(user);
    }
}

メソッドを宣言するときは、@RequestMapping のメソッド属性であるインターフェイス アクセスの現在のアクセス メソッドを指定するのが最善であることに注意してください。そうしないと、すべてのリクエスト メソッドが Swagger ドキュメントに表示され、非常に煩雑になります。 @RequestParam を追加するのが最善です。そうしないと、swagger のテスト機能が利用できない可能性があります

すべてが完了したら、プロジェクトを再起動し、**プロジェクト アドレス/swagger-ui.html **にアクセスします。

一般的な例外: ページにアクセスすると 404 が報告される

1. springMVC 静的リソースが設定されているかどうかを確認する

2. パスが正しいかどうかを確認します

おすすめ

転載: blog.csdn.net/lihao1107156171/article/details/103014234