gpt4 book ai didi

rest - 如何为嵌套资源制作单独的 REST Controller ? Spring Boot

转载 作者:行者123 更新时间:2023-12-04 12:45:25 24 4
gpt4 key购买 nike

我有一个 REST Controller 。它处理资源“消息”。每条消息内部都可以包含评论。

/api/v1/messages/1
/api/v1/messages/2

/api/v1/messages/1/comments/1
/api/v1/messages/1/comments/2

这是一个代码:
@RestController
@RequestMapping("/api/v1/messages/")
public class RestControllerV1 {

@RequestMapping(value = "{id}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public ResponseEntity<Message> getMessage(@PathVariable("id") Long messageId) {

}

@RequestMapping(value = "{messageId}/comments/{commentId}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public ResponseEntity<Comment> getComment(@PathVariable("messageId") Long messageId, @PathVariable("commentId") Long commentId) {

}
}

它工作正常。
但是我认为两个资源一个大的 Controller 不是很好。所以我想要不同的 Controller (SOLID,S-principle)。
MessageControllerV1


CommentControllerV1

是否可以在 Spring Boot 应用程序中划分 Controller ?

最佳答案

你可以有类似的东西:

@RestController
@RequestMapping("/api/v1/messages")
public class MessageController {

@RequestMapping(value = "{messageId}",
method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public ResponseEntity<Message> getMessage(@PathVariable("messageId") Long messageId) {
...
}
}

@RestController
@RequestMapping("/api/v1/messages/{messageId}/comments")
public class CommentController {

@RequestMapping(value = "{commentId}",
method = RequestMethod.GET,
produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
public ResponseEntity<Comment> getComment(@PathVariable("messageId") Long messageId,
@PathVariable("commentId") Long commentId) {
...
}
}

关于rest - 如何为嵌套资源制作单独的 REST Controller ? Spring Boot ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50394327/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com