use of org.motechproject.mds.docs.swagger.model.SwaggerModel in project motech by motech.
the class SwaggerGenerator method generateDocumentation.
@Override
public void generateDocumentation(Writer writer, String serverPrefix, Locale locale) {
LOGGER.info("Generating REST documentation");
SwaggerModel swaggerModel = initialSwaggerModel(serverPrefix, locale);
swaggerModel.addDefinition("Metadata", buildMetadataDefinition());
for (Entity entity : allEntities.retrieveAll()) {
addCrudEndpoints(swaggerModel, entity, locale);
addLookupEndpoints(swaggerModel, entity, locale);
addDefinitions(swaggerModel, entity);
}
if (swaggerModel.getDefinitions().size() == 1) {
swaggerModel.getInfo().setDescription(String.format("%s \n\n**%s [%s](%s)**", msg(locale, API_DESCRIPTION_KEY), msg(locale, NO_ENTITY_IS_EXPOSED_KEY), msg(locale, REST_API_DOCS_KEY), property(REST_API_DOCS_URL_KEY)));
}
Gson gson = buildGson();
gson.toJson(swaggerModel, writer);
}
use of org.motechproject.mds.docs.swagger.model.SwaggerModel in project motech by motech.
the class SwaggerGeneratorTest method shouldGenerateJson.
@Test
public void shouldGenerateJson() {
StringWriter stringWriter = new StringWriter();
swaggerGenerator.generateDocumentation(stringWriter, "/motech-platform-server", LOCALE);
Gson gson = new GsonBuilder().registerTypeAdapter(Response.class, new ResponseAdapter()).registerTypeAdapter(ParameterType.class, new ParameterTypeAdapter()).create();
SwaggerModel swaggerModel = gson.fromJson(stringWriter.toString(), SwaggerModel.class);
verifyCommonModel(swaggerModel);
verifyDefinitions(swaggerModel);
verifyPaths(swaggerModel);
}
use of org.motechproject.mds.docs.swagger.model.SwaggerModel in project motech by motech.
the class SwaggerGenerator method initialSwaggerModel.
private SwaggerModel initialSwaggerModel(String serverPrefix, Locale locale) {
SwaggerModel swaggerModel = new SwaggerModel();
swaggerModel.setSwagger(V_2);
swaggerModel.setBasePath(serverPrefix + property(BASE_PATH_KEY));
swaggerModel.setInfo(mdsApiInfo(locale));
swaggerModel.setSchemes(Arrays.asList(HTTP));
swaggerModel.setProduces(json());
swaggerModel.setConsumes(json());
return swaggerModel;
}
Aggregations