java伺服器使用swagger自動生成API文件
阿新 • • 發佈:2018-12-24
1.下載swaggerui,放入工程resource下
注意編輯index.html
var url = window.location.search.match(/url=([^&]+)/); if (url && url.length > 1) { url = decodeURIComponent(url[1]); } else { url = window.location.toString(); url = url.substring(0, url.lastIndexOf("/docs")) + "/test/swagger.json"; }
2.編輯POM
<dependencies> <!-- swagger --> <dependency> <groupId>io.swagger</groupId> <artifactId>swagger-jersey2-jaxrs</artifactId> <version>1.5.3</version> </dependency> </dependencies> <build> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> <includes> <include>*.properties</include> <include>*.xml</include> </includes> </resource> <resource> <directory>src/main/resources/swaggerui</directory> <filtering>true</filtering> <includes> <include>**/*</include> </includes> <targetPath>swaggerui/</targetPath> </resource> </resources> </build>
3.編輯Main.java,新增兩個函式。
import io.swagger.jaxrs.config.BeanConfig; public static Server startServer() throws Exception { ... //swagger buildSwagger(); handlerList.addHandler(buildSwaggerUI()); ... } private static void buildSwagger() { // This configures Swagger BeanConfig beanConfig = new BeanConfig(); beanConfig.setVersion("1.0.0"); beanConfig.setResourcePackage("com.test.mavenproject.rest"); beanConfig.setScan(true); beanConfig.setBasePath("/test"); beanConfig.setDescription("Entity Browser API to demonstrate Swagger with Jersey2 in an " + "embedded Jetty instance, with no web.xml or Spring MVC."); beanConfig.setTitle("Entity Browser"); } private static ContextHandler buildSwaggerUI() throws Exception { final ResourceHandler swaggerUIResourceHandler = new ResourceHandler(); swaggerUIResourceHandler.setResourceBase(Main.class.getClassLoader().getResource("swaggerui").toURI().toString()); final ContextHandler swaggerUIContext = new ContextHandler(); swaggerUIContext.setContextPath("/docs"); swaggerUIContext.setHandler(swaggerUIResourceHandler); return swaggerUIContext; }
4.編輯TestJerseyConfig.java
import io.swagger.jaxrs.listing.ApiListingResource;
//packages("com.test.mavenproject.rest");
改為
packages("com.test.mavenproject.rest", ApiListingResource.class.getPackage().getName());
5.編輯服務類
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@Api("Session")
@Path("test1")
public class TestResource {
@Inject
public TestResource(
) {
}
@ApiOperation(
value = "Get測試"
)
@GET
@Path("get")
@Produces(MediaType.TEXT_PLAIN)
public String getTest(){
return "called Get";
}
}
更詳細的Api介紹All Classes(swagger-annotation)
完成後訪問 http://伺服器地址:埠/docs