mirror of
https://github.com/Athou/commafeed.git
synced 2026-03-21 21:37:29 +00:00
58 lines
2.0 KiB
Groovy
58 lines
2.0 KiB
Groovy
import java.io.File;
|
|
|
|
import org.apache.commons.io.FileUtils;
|
|
|
|
import com.commafeed.frontend.model.Entries;
|
|
import com.commafeed.frontend.model.request.MarkRequest;
|
|
import com.commafeed.frontend.rest.RESTApplication;
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
import com.wordnik.swagger.annotations.Api;
|
|
import com.wordnik.swagger.core.Documentation;
|
|
import com.wordnik.swagger.core.DocumentationEndPoint;
|
|
import com.wordnik.swagger.core.SwaggerSpec;
|
|
import com.wordnik.swagger.core.util.TypeUtil;
|
|
import com.wordnik.swagger.jaxrs.HelpApi;
|
|
import com.wordnik.swagger.jaxrs.JaxrsApiReader;
|
|
|
|
public class SwaggerStaticGenerator {
|
|
public void generate(String directory) throws Exception {
|
|
|
|
JaxrsApiReader.setFormatString("");
|
|
TypeUtil.addAllowablePackage(Entries.class.getPackage().getName());
|
|
TypeUtil.addAllowablePackage(MarkRequest.class.getPackage().getName());
|
|
|
|
RESTApplication app = new RESTApplication();
|
|
|
|
String apiVersion = "1.0";
|
|
String swaggerVersion = SwaggerSpec.version();
|
|
String basePath = "../rest";
|
|
|
|
Documentation doc = new Documentation();
|
|
for (Class<?> resource : app.getClasses()) {
|
|
Api api = resource.getAnnotation(Api.class);
|
|
if (api != null) {
|
|
String apiPath = api.value();
|
|
String apiListingPath = api.value();
|
|
|
|
Documentation apiDoc = new HelpApi(null).filterDocs(
|
|
JaxrsApiReader.read(resource, apiVersion, swaggerVersion, basePath, apiPath), null, null, apiListingPath, apiPath);
|
|
|
|
apiDoc.setSwaggerVersion(swaggerVersion);
|
|
apiDoc.setApiVersion(apiVersion);
|
|
write(apiDoc, directory);
|
|
|
|
doc.addApi(new DocumentationEndPoint(api.value(), api.description()));
|
|
}
|
|
}
|
|
doc.setSwaggerVersion(swaggerVersion);
|
|
doc.setApiVersion(apiVersion);
|
|
|
|
write(doc, directory);
|
|
}
|
|
|
|
private static void write(Documentation doc, String directory) throws Exception {
|
|
FileUtils.writeStringToFile(new File(directory, doc.getResourcePath() == null ? "resources" : doc.getResourcePath()), new ObjectMapper().writeValueAsString(doc));
|
|
|
|
}
|
|
}
|