private String getApiName (Raml raml, String fileName) { String title = raml.getTitle(); return StringUtils.isNotBlank(title) ? title : fileName; }
@Override public RamlReport addReport(RamlReport report) { if (report != null) { if (raml == null) { raml = report.getRaml(); } else if (!raml.getTitle().equals(report.getRaml().getTitle())) { throw new IllegalArgumentException("This aggregator can only be used with one RamlDefinition. To work with multiple RamlDefinitions, use MultiReportAggregator."); } reports.add(report); } return report; }
@Override public Iterable<Map.Entry<String, Usage>> usages() { return reports.isEmpty() ? Collections.<String, Usage>emptyMap().entrySet() : Collections.singletonMap(raml.getTitle(), UsageBuilder.usage(raml, reports)).entrySet(); }
public static String safeName(Raml raml) { return IoUtil.safeName(raml.getTitle()); }
@Override public RamlReport addReport(RamlReport report) { if (report != null) { final String title = report.getRaml().getTitle(); final List<RamlReport> reportList = getOrCreateReports(title); reportList.add(report); } return report; }
public List<RamlReport> getReports(RamlDefinition definition) { return getOrCreateReports(definition.getRaml().getTitle()); }
public JavaFile javaFile(Raml raml, String basePackage) { TypeSpec.Builder api = TypeSpec.classBuilder("Api" + capitalize(sanitize(raml.getTitle()))) .addJavadoc("$L api client\n", raml.getTitle()) .addJavadoc("Base URI pattern: $L\n", raml.getBaseUri()) .addField(configField.fieldSpec()) .addType(configClass.nestedConfSpec()) .addMethod(MethodSpec.constructorBuilder().addParameter(ClassName.bestGuess(NestedConfigClass.CONFIG_NESTED_STATIC_CLASS_NAME), configField.name()) .addStatement("this.$N = $N", configField.name(), configField.name()) .addModifiers(PRIVATE) .build()) .addModifiers(PUBLIC); api.addMethod(MethodSpec.methodBuilder(lowerCase(sanitize(raml.getTitle()))) .addParameter(ClassName.bestGuess(NestedConfigClass.CONFIG_NESTED_STATIC_CLASS_NAME), configField.name()) .returns(ClassName.bestGuess(api.build().name)) .addStatement("return new $N($N)", api.build().name, configField.name()) .addModifiers(PUBLIC, STATIC) .build()); raml.getResources().values().stream().forEach(resource -> api.addMethod( baseResource(resource, basePackage, configField.name(), configClass.getBaseSupplField().name()) )); return JavaFile.builder(basePackage, api.build()).build(); } }
public void generate() throws IOException { Path path = codegenConfig.getInputPath(); LOG.info("RAML: {}", path.toAbsolutePath()); if (path.endsWith(".raml")) { LOG.warn("Wrong path - should end with .raml"); return; } Raml raml = new RamlDocumentBuilder(new FileResourceLoader(path.getParent().toFile())) .build(path.getFileName().toString()); ReqSpecSupplField baseReqSpec = new ReqSpecSupplField(); ReqSpecField req = new ReqSpecField(); new RootApiClase(new NestedConfigClass(raml.getTitle(), baseReqSpec, req)) .javaFile(raml, codegenConfig.getBasePackage()) .writeTo(codegenConfig.getOutputPath()); raml.getResources().values().parallelStream().forEach(resource -> { new ResourceClassBuilder().withCodegenConfig(codegenConfig).withResource(resource).withReq(req).generate(); }); } }
contract.setName(raml.getTitle());
contract.setName(raml.getTitle());
contract.setName(raml.getTitle());
contract.setName(raml.getTitle());
contract.setName(raml.getTitle());
@Test public void apiLevelDocs() { processResource("ApiLevelDocs.java", "raml", "all"); AssertJUnit.assertEquals("ApiLevelDocs should have produced exactly 1 results document", 1, output.size()); Map.Entry<String,String> entry = output.entrySet().iterator().next(); AssertJUnit.assertTrue("expected file named ApiLevelDocs-UltimateApi.raml", entry.getKey().endsWith("ApiLevelDocs-UltimateApi.raml")); Raml raml = new RamlDocumentBuilder().build(entry.getValue(), "http://example.com"); AssertJUnit.assertNotNull("RAML not parseable", raml); AssertJUnit.assertEquals("RAML title is incorrect", "The Ultimate REST API", raml.getTitle()); AssertJUnit.assertEquals("RAML version is incorrect", "v1", raml.getVersion()); AssertJUnit.assertEquals("RAML baseUri is incorrect", "/ultimate/api/v1", raml.getBaseUri()); List<DocumentationItem> documentation = raml.getDocumentation(); AssertJUnit.assertNotNull("RAML has no documentation items", documentation); AssertJUnit.assertEquals("RAML has too many documentation items", 1, documentation.size()); AssertJUnit.assertEquals("RAML documentation item has wrong title", "Overview", documentation.get(0).getTitle()); AssertJUnit.assertEquals("RAML documentation item has wrong content", "Some documentation of the API itself.", documentation.get(0).getContent().trim()); }
Raml raml = new RamlDocumentBuilder().build(entry.getValue(), "http://example.com"); AssertJUnit.assertNotNull("RAML for MultiApiLevelDocs-RestApi1.raml not parseable", raml); AssertJUnit.assertEquals("RAML title is incorrect", "The RestApi1 API", raml.getTitle()); AssertJUnit.assertEquals("RAML version is incorrect", "v1", raml.getVersion()); AssertJUnit.assertEquals("RAML baseUri is incorrect", "/restapi1/api/v1", raml.getBaseUri()); raml = new RamlDocumentBuilder().build(entry.getValue(), "http://example.com"); AssertJUnit.assertNotNull("RAML for MultiApiLevelDocs-RestApi2.raml not parseable", raml); AssertJUnit.assertEquals("RAML title is incorrect", "The RestApi2 API", raml.getTitle()); AssertJUnit.assertEquals("RAML version is incorrect", "v1", raml.getVersion()); AssertJUnit.assertEquals("RAML baseUri is incorrect", "/restapi2/api/v1", raml.getBaseUri());
protected API transformAPI(final Context context, final org.raml.model.Raml source, final org.raml.model.Resource sourceResourceRoot, final JSONSchemaStore store, final APINamespace namespace, final boolean async) { final APIBuilder apiBuilder = API.builder(); apiBuilder.namespace(namespace); apiBuilder.name(source.getTitle()); apiBuilder.qualifier(transformAPIName(sourceResourceRoot)); apiBuilder.path(transformAPIPath(source, sourceResourceRoot)); apiBuilder.baseUri(source.getBaseUri()); apiBuilder.async(async); final List<DocumentationItem> items = source.getDocumentation(); if (items != null && !items.isEmpty()) { apiBuilder.description(source.getDocumentation().get(0).getContent()); } final TransformationContext ctx = new TransformationContext(namespace, source, store); apiBuilder.parameterGroups(traitsTransformer.transform(context, source.getTraits(), ctx)); apiBuilder.types(dtosTransformer.transform(context, ctx)); if (!context.isCompatibilityModeDisabled()) { apiBuilder.types(enumerationsTransformer.transform(context, ctx)); } apiBuilder.resource(singleResourceTransformer.transform(context, sourceResourceRoot, ctx)); return apiBuilder.build(); }