spring-projects / spring-projects/spring-data-rest

Document how POST subresources URI in @RepositoryRestController [DATAREST-1107]

Open
#1,470 1 comment 0 reactions 1 assignee View on GitHub

@odrotbohm is already working on this.

Since Dec 31, 2020.

type: documentation type: enhancement
Dominant language
Java
Stars
958
Forks
568
PR merge metrics
No merged PRs in 30d

Description

Daniele Renda opened DATAREST-1107 and commented

Would be helpful have more specification about how to use @RepositoryRestController facilities to convert subresources URI in a POST endpoint.

Sometimes to POST a resource you need to send also mandotory subresources (like in my case); so you have to POST everything at the same time.

For example:

@PreAuthorize("isAuthenticated()")
@RequestMapping(method = RequestMethod.POST, path = "/storeBlocks")
public ResponseEntity<?> storeBlocks(@RequestBody(required = true) TicketType ticketType,
@RequestBody(required = true) CheckPoint checkPoint, int firstBlockNumber, int lastBlockNumber, Locale locale)

in this case I'm trying to save several entities called TicketBlock that needs two subresources to be persisted: CheckPoint and TicketType.

According to HATEOAS principles I would expect to send an URIs for CheckPoint and TicketType resources but in custom controllers this doesn't work.

I would expect to have the same facility like in Spring Data REST default repositories or at least to have some documentation explaining how I could reach the same level of automation.

I guess this is not a bug but just an improvement that would be very useful though


Affects: 2.6.4 (Ingalls SR4)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.