Fix issue #659: Means for Spring Hateoas Pagination #660
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
To generate pagination automatically with spring hateoas, two vendor tags have been added and used within the template files api.mustache and pojo.mustache in JavaSpring.
The first boolean vendorTag (x-pagination) operates on the endpoint level in the OpenApi spec and causes the generation of a Pageable parameter which is provided by Spring Hateoas and contains the parameters for size, sort, and page. In order to work correctly with Spring Hateoas, the corresponding POJO class holding the response payload for the endpoint with pagination needs to be extended with a RepresentationModel also provided by Spring Hateoas.
The second boolean vendorTag (x-doc-only) operates on the parameter level for the specific endpoint in the OpenApi spec. This vendorTag is also needed in correspondence with pagination because as stated before parameters for size, sort, page are automatically generated for the endpoints with enabled pagination, i.e. one does not declare them in the spec. However, for many reasons (e.g. documentation with Swagger UI), it makes sense to still declare those parameters in the spec. The vendorTag x-doc-only set to true results in omitting those parameters in code generation.