1

I'm developing a microservice using SPRING DATA REST where I need to sub-resources to be accessible only thru main resource like the following structure :

http://localhost:8080/posts
http://localhost:8080/posts/1/comments

and block direct access to sub-resource directly like this http://localhost:8080/comments/*.

where comments must be accessible only thru related poste , I did the following in my repository :

@RepositoryRestResource(collectionResourceRel = "posts", path = "posts")
public interface PostRepository extends PagingAndSortingRepository<Post, Long> {
   ...
}

for comments :

 @RepositoryRestResource(collectionResourceRel = "comments", path = "comments")
    public interface CommentRepository extends PagingAndSortingRepository<Comment, Long> {
       ...
    }

now by default SPRING DATA REST returns the following results when i goto to : http://localhost:8080

{
  "id": 1,
  "content": "some post text .........................",
  "author":"abc",
  
  "_links": {
    "self": {
      "href": "http://localhost:8080/posts/1"
    },
    "attributes": {
      "href": "http://localhost:8080/posts/1/comments"
    }
  }
}

now if i want to post a comment i need to do the following :

 http://{server:port}/comment METHOD:POST
    
    {"author":"abc","content":"PQROHSFHFSHOFSHOSF", "post":"http://{server:port}/post/1"}

but what i need to achienve is to POST to an url like this http://{server:port}/posts/1/comment where the POST is the root resource NOT like the previous path http://{server:port}/comment

 http://{server:port}/posts/1/comment METHOD:POST
    
{"author":"abc","content":"PQROHSFHFSHOFSHOSF", "post":"http://{server:port}/post/1"}

i now that this is possible if a create a custom comment @controller but i want to use the already building features of SPRING DATA REST and Hateoas support .

  • Does this answer your question? [How can I map a Spring Boot @RepositoryRestResource to a specific url?](https://stackoverflow.com/questions/24577400/how-can-i-map-a-spring-boot-repositoryrestresource-to-a-specific-url) – Jens Schauder Nov 03 '20 at 10:42
  • No unfortunately this not solve my problem. – Don Hamzovic Nov 03 '20 at 13:03

0 Answers0