将带有url的发布请求发送到restcontroller到剩余存储库

时间:2019-07-04 21:55:53

标签: spring-boot spring-data spring-data-rest spring-restcontroller spring-rest

我有2个实体A和B,其中A拥有类B的属性“ b”(A和B之间的一对一关联)

我想进行一次调用以保存A实体的实例,并将b参数作为url传递给json中的类似内容:

{
    "id": "5",
    "b": "/restapi/B/2"
}

/ b / 2是B存储库的findById剩余资源。

当我执行A资源库的目标休息资源save()(通常是对url / restapi / A的POST请求)时,它工作得很好,spring通过调用其余资源来寻找B实体(在此示例中为2) B存储库中的数据。

我想通过在@RestController组件内定义@PostMapping函数,使用自己的rest控制器执行相同的行为。

有可能吗?

PS:我已经测试了使用邮递员发送上述JSON,其余的api将“ / restapi / B /”解释为String,并尝试使用显然失败的字符串反序列化B。

2 个答案:

答案 0 :(得分:0)

是的,您可以将该存储库自动连接到restcontroller中,然后从那里开始使用它。您可能需要事务性注释。

我也建议您看一下Spring-Data-Rest项目。这已经为您提供了您要构建的内容。这是HATEOAS原则的实现。

答案 1 :(得分:0)

在您的控制器类中使用import {Player} from './player'; // Or wherever the player interface/class is located export interface GameInterface { addPlayer(player: Player); gamePlayers(); nextMove(row: number, col: number):boolean; validateCell(row: number, col: number): boolean; lookForWinningPattern(); horizontal(): boolean; vertical(): boolean; diagonalLeftToRight(): boolean; diagonalRightToLeft(): boolean; printSummary (); } 而不是@RepositoryRestController