Java json api中的一个对象可以有两个ID吗

Java json api中的一个对象可以有两个ID吗,java,rest,web-services,json-api,Java,Rest,Web Services,Json Api,我使用的是一个RESTfulWebService,它以JSONAPI格式给出响应。存在一个具有id和类型参数的关系属性。基于id引用,它显示包含属性中的值。id是在作为最终输出处理的两个请求之后创建的。在此之前,我将数据作为一个对象保存在数据库中。现在,当我使用RESTWebService从数据库中获取数据时,输出显示除包含的属性之外的所有属性。我认为这是因为它无法找到参考,所以无法显示。但是在数据库中,所有的值都是完美的。我不确定json api是否支持关系属性的多个ID。 例子: 请求机构:

我使用的是一个RESTfulWebService,它以JSONAPI格式给出响应。存在一个具有id和类型参数的关系属性。基于id引用,它显示包含属性中的值。id是在作为最终输出处理的两个请求之后创建的。在此之前,我将数据作为一个对象保存在数据库中。现在,当我使用RESTWebService从数据库中获取数据时,输出显示除包含的属性之外的所有属性。我认为这是因为它无法找到参考,所以无法显示。但是在数据库中,所有的值都是完美的。我不确定json api是否支持关系属性的多个ID。 例子: 请求机构:

{
"data": {
        "type": "orders",
        "attributes": {
            "name": "new order",
            "updateDate": "",
            "register":"yes",
            "items":[
                {
                    "description": "newly added item",
                    "type": "new item",
                    "amount": [
                        {
                            "deliveryfee": "123",
                            "mrp": "456"
                        }
                    ]
                }
            ]
        }
    }
}
预期回应机构:

 {
        "data": {
            "type": "orders",
            "id": "1",
            "attributes": {
                "name": "new order",
                "updateDate": "",
                
            },
            "relationships": {
                "items": {
                    "data": [
                        {
                            "type": "items",
                            "id": null
                        }
                    ]
                }
            }
        },
        "included": [
            {
                "type": "items",
                "id": null,
                "attributes": {
                    "type": "new item",
                    "description": "newly added item",
                    "amount": [
                        {
                            "deliveryfee": "123",
                            "mrp": "456"
                        }
                    ]
                }
            }
        ]
    }
 {
    "data": {
        "type": "orders",
        "id": "1",
        "attributes": {
            "name": "new order",
            "updateDate": "",
            
        },
        "relationships": {
            "items": {
                "data": [
                    {
                        "type": "items",
                        "id": null
                    }
                ]
            }
        }
    }
}
实际响应机构:

 {
        "data": {
            "type": "orders",
            "id": "1",
            "attributes": {
                "name": "new order",
                "updateDate": "",
                
            },
            "relationships": {
                "items": {
                    "data": [
                        {
                            "type": "items",
                            "id": null
                        }
                    ]
                }
            }
        },
        "included": [
            {
                "type": "items",
                "id": null,
                "attributes": {
                    "type": "new item",
                    "description": "newly added item",
                    "amount": [
                        {
                            "deliveryfee": "123",
                            "mrp": "456"
                        }
                    ]
                }
            }
        ]
    }
 {
    "data": {
        "type": "orders",
        "id": "1",
        "attributes": {
            "name": "new order",
            "updateDate": "",
            
        },
        "relationships": {
            "items": {
                "data": [
                    {
                        "type": "items",
                        "id": null
                    }
                ]
            }
        }
    }
}

我不能完全肯定我是否正确理解了你的问题。但让我试着回答

类型
id
的组合用于识别资源:

在给定的API中,每个资源对象的
类型
id
对必须标识一个唯一的资源

示例中使用的
null
不是
id
的有效值:

id
type
成员的值必须是字符串

API可以组合其内部数据库中使用的多个标识符来构造JSON API文档中用于
id
的值,只要该值对于给定类型是唯一的。从JSON API规范的角度来看,这将是一个有效的
id
值,只要保证它是唯一的

{
“类型”:“职位”:
“id”:“post_id:5,locale:en”
}
API可以将ID反序列化为两个不同的标识符:ID为
5
的post和ID为
“en”
的local。这将是API的内部实现细节。消费者不应该在意某个含义是否在
id
值中编码

您问题中给出的请求和响应机构不匹配。两者都包含一个字段
。但是在请求主体中,
items
字段是一个属性,而它在响应中是一个关系


似乎您正试图同时创建多个资源。JSON API规范v1不支持这一点。规范v1.1的第三个候选版本通过正式扩展支持它。

正确,由于业务用例,这些项是一个单独的实体。我们必须以关系的形式将其合并为一个响应。我将在v1.1中尝试同样的方法。谢谢