swagger2如何访问doc.html
时间: 2023-05-31 13:18:52 浏览: 274
### 回答1:
Swagger2 的 doc.html 文件可以通过在浏览器中输入项目的 URL 加上 /swagger-ui.html 来访问,例如:http://localhost:8080/swagger-ui.html。需要注意的是,这需要在项目中配置 Swagger2。
### 回答2:
Swagger2是一个RESTful风格的API文档生成工具,可以方便地生成API文档和测试API接口。在使用Swagger2时,我们通常会用到Swagger UI,它提供了一个可视化的UI界面,方便我们查看和测试API接口。其中,doc.html是Swagger UI的入口,通过访问doc.html可以打开Swagger UI。那么,swagger2如何访问doc.html呢?
首先,需要在项目的pom.xml文件中引入Swagger2的依赖,示例如下:
```xml
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>{version}</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>{version}</version>
</dependency>
```
其中,version是Swagger2的版本号,可以根据需要进行修改。
然后,在启动类上添加@EnableSwagger2注解开启Swagger2的支持,示例如下:
```java
@SpringBootApplication
@EnableSwagger2
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
```
接下来,在Swagger2的配置类上配置Swagger2的相关信息。其中,最重要的是配置API文档的基本信息,并将API文档路径和接口文档路径映射起来。示例如下:
```java
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.example.controller"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfo(
"Swagger2 Demo API",
"API文档演示",
"1.0.0",
"Terms of service",
new Contact("Swagger2 Demo", "", ""),
"Apache License Version 2.0",
"https://www.apache.org/licenses/LICENSE-2.0",
Collections.emptyList());
}
@Bean
public WebMvcConfigurerAdapter springfoxWebMvcConfiguration() {
return new WebMvcConfigurerAdapter() {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
}
};
}
}
```
在以上配置中,我们将API文档的基本信息设置为“Swagger2 Demo API”,API文档的描述为“API文档演示”,版本号为“1.0.0”,开发者信息为空,许可证信息为Apache License Version 2.0,其它信息均为空。然后,我们将API文档路径和接口文档路径分别映射为“/v2/api-docs”和“/swagger-ui.html”。
最后,在项目启动后,在浏览器中输入http://localhost:8080/swagger-ui.html,即可访问doc.html并使用Swagger UI查看和测试API接口。需要注意的是,以上示例中的API文档路径和接口文档路径都是默认值,如果你的项目中进行了修改,需要相应地将Swagger2的配置类进行修改。
### 回答3:
Swagger2是一种RESTful API文档生成工具,具有易于使用的接口,并且可以自动生成API文档。使用Swagger2,API开发人员可以更容易地创建和维护RESTful API文档。 Swagger2提供了可读性强、可交互、可视化的API文档。
在Swagger2中访问 doc.html 的主要过程如下:
首先,需要在pom.xml文件中将Swagger2依赖添加到项目中:
```xml
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
```
然后在Spring Boot启动类上添加@EnableSwagger2注解,以启用Swagger2:
```java
@EnableSwagger2
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
```
接下来,需要配置Swagger2的Docket对象,并使用Swagger2的API文档生成器。Docket是Swagger2的主配置类,它会配置Swagger生成的文档的基本信息,例如生成文档的类型(swagger、riso、openapi)或描述信息。
```java
@Configuration
@EnableSwagger2
public class Swagger2Config {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.example.demo.controller"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("swagger2 api文档")
.description("文档说明")
.version("1.0.0")
.build();
}
}
```
在应用程序启动后,访问http://localhost:端口号/swagger-ui.html,可以打开Swagger UI页面,显示API文档,使其可视化。
同时,Swagger2还提供了doc.html访问方式。只需要在启动类上通过api-docs路径将文档暴露出去,通过http://localhost:端口号/v2/api-docs即可访问到doc.html:
```java
@Configuration
@EnableSwagger2
public class Swagger2Config {
@Value(value = "${swagger2.controller}")
private String swagger2Controller;
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.example.demo.controller"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("swagger2 api文档")
.description("文档说明")
.version("1.0.0")
.build();
}
@RequestMapping(value = "/doc.html", method = RequestMethod.GET)
public ModelAndView getDoc() {
ModelAndView mav = new ModelAndView();
mav.setViewName("redirect:/swagger-ui.html");
return mav;
}
@RequestMapping(value = "/v2/api-docs", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
@ResponseBody
public Object getDocJson(HttpServletRequest request) {
// 获取controller名称
String controller = request.getParameter("controller");
if (StringUtils.isBlank(controller)) {
controller = swagger2Controller;
}
return getSwaggerJson(controller);
}
/**
* 根据controller生成swagger Json
*
* @param controller
* @return
*/
private Object getSwaggerJson(String controller) {
Swagger2Controller swagger2Controller = new Swagger2Controller();
swagger2Controller.setMappedController(controller);
return swagger2Controller.getDocumentationJson();
}
}
```
通过访问http://localhost:端口号/doc.html即可展示Swagger2的API文档。
总之,Swagger2是一种极为方便、易于使用的API文档生成工具。通过Swagger2,开发人员不仅可以自动生成API文档,还可以方便快捷地进行文档维护和更新。
阅读全文