Not able to link my javadocs with spring auto rest docs

963 views Asked by At

I am not getting how do you use JavaDocs, with Spring Auto Rest Docs. I can generate my java-docs locally by using STS, UI option. However,i am not sure how to generate java-docs using Spring Auto Rest Docs. I tried writing some plugin in POM. But the auto-description.adoc and many other doc are still empty.

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <version>2.10.3</version>
            <executions>
                <execution>
                    <id>attach-javadocs</id>
                    <goals>
                        <goal>jar</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <version>3.0.0</version>
            <extensions>true</extensions>
            <executions>
                <execution>
                    <id>attach-javadocs</id>
                    <goals>
                        <goal>jar</goal>
                    </goals>
                    <configuration>
                        <!-- switch on dependency-driven aggregation -->
                        <includeDependencySources>true</includeDependencySources>
                    </configuration>
                </execution>
                <execution>
                    <id>generate-javadoc-json</id>
                    <phase>compile</phase>
                    <goals>
                        <goal>javadoc-no-fork</goal>
                    </goals>
                    <configuration>
                        <doclet>capital.scalable.restdocs.jsondoclet.ExtractDocumentationAsJsonDoclet</doclet>
                        <docletArtifact>
                            <groupId>capital.scalable</groupId>
                            <artifactId>spring-auto-restdocs-json-doclet</artifactId>
                        </docletArtifact>
                        <additionalparam>
                                -d ${project.build.directory}/site/doccheck
                        </additionalparam>
                        <reportOutputDirectory>${project.build.directory}</reportOutputDirectory>
                        <useStandardDocletOptions>false</useStandardDocletOptions>
                        <show>package</show>
                    </configuration>
                </execution>
            </executions>
        </plugin>

Basically I am not getting how to make Spring Auto Rest Docs use Java Docs to find Path Parameters. I can use mvn javadoc:javadoc command on terminal to create Javadocs whch are created in target/site/apidocs/ folder. But I still get No parameters in my auto-path-parameters.adoc

Here is the controller, I am using GraphQL so its different:

/**
 * Query Controller Class
 * @author shantanu
 *
 */
@RestController
@RequestMapping(value="/graphql")
public class QueryController {

    @Value("classpath:/graphql/actionItm.graphqls")
    private Resource schemaResource;



    private GraphQL graphQL;


    @Autowired
    @Qualifier("graphQLDate")
    private GraphQLScalarType Date;



    @Autowired
    private AllActionItemsDataFetcher allActionItemsDataFetcher;

    @Autowired
    private ActionItemDataFetcher actionItemDataFetcher;


    @Autowired
    private PageActionItemDataFetcher pageActionItemDataFetcher;

    @PostConstruct
    public void loadSchema() throws IOException {
        File schemaFile = schemaResource.getFile();
        TypeDefinitionRegistry typeRegistry = new SchemaParser().parse(schemaFile);
        RuntimeWiring wiring = buildRuntimeWiring();
        GraphQLSchema schema = new SchemaGenerator().makeExecutableSchema(typeRegistry, wiring);
        graphQL = GraphQL.newGraphQL(schema).build();

    }

    private RuntimeWiring buildRuntimeWiring() {


        return RuntimeWiring.newRuntimeWiring()
                .type("Query", typeWiring -> typeWiring
                        .dataFetcher("findAllActionItems", allActionItemsDataFetcher)
                        .dataFetcher("findActionItem", actionItemDataFetcher)
                        .dataFetcher("pageActionItems", pageActionItemDataFetcher))
                        .scalar(Date)

                .build();
    }

    /**
     * This
     * @param query Description
     * @return ResponseEntity responseEntity
     */
    @PostMapping
    public ResponseEntity query(@RequestBody String query) {
        ExecutionResult result = graphQL.execute(query);
        return ResponseEntity.ok(result.getData());

    }

}

I am not getting where I am wrong, with the path-parameters. And only the .adoc files are generated with Spring Auto Rest Docs, and no JSON files.

0

There are 0 answers