SpringBoot 中的 Rest 服务需要来自 GET 请求的 JSON 中的嵌套对象

Posted

技术标签:

【中文标题】SpringBoot 中的 Rest 服务需要来自 GET 请求的 JSON 中的嵌套对象【英文标题】:Rest service in SpringBoot expects a nested object in JSON from GET request 【发布时间】:2021-12-14 22:22:55 【问题描述】:

我正在使用 SpringBoot。我有两个实体,用户和角色。我要为每个用户记录分配一个角色。

在我的实体中,我已经建立了关系,并且数据库是按照我的意愿构建的。

当我看到服务时,它会在我想保存用户时询问我的角色对象。我想要创建用户记录是否正确?或者使用@AutoWired,我可以在我的存储库类中添加 Role 实例并通过 id 搜索它吗?

你有什么推荐的?我还是 Rest 服务的新手。

例如,在调用创建用户服务时,它期望的 JSON 如下:

 
  "id": 1,
  "usuario": "JUANITO",
  "password": "*********",
  "correo": "algo@algo.com",
  "estado": "ACTIVO",
  "fecha": 12125368254,
  "rol": 
    "descripcion": "ADMIN",
    "estado": "ACTIVO",
    "id": 1
  

我希望是这样的:


  "id": 1,
  "usuario": "JUANITO",
  "password": "*********",
  "correo": "algo@algo.com",
  "estado": "ACTIVO",
  "fecha": 12125368254,
  "rol": 1

也就是说,我不想创建一个新的角色对象,而是使用一个现有的并将它分配给我的用户记录。

【问题讨论】:

【参考方案1】:

或者使用@AutoWired,我可以在我的存储库类中添加 Role 实例并通过 id 搜索它吗?

不,您不能简单地在运行时动态地自动装配给定Role 的实例。如果您希望能够使用第二个 JSON,您需要获取与给定 ID 关联的 Role 实体,然后将其设置在您的 User 对象中,然后您才能使用您的存储库来保存 User

【讨论】:

以上是关于SpringBoot 中的 Rest 服务需要来自 GET 请求的 JSON 中的嵌套对象的主要内容,如果未能解决你的问题,请参考以下文章

springboot构建rest服务,打包docker镜像

webpack服务器中的rest API调用(来自角度)返回401

REST ful

Spring boot REST API 仅接受来自 Angular 前端的调用

来自 wordpress 的 REST API 调用中的服务不可用

在同一个 Spring Boot 应用程序中的 Rest 服务和 Web 服务