JAGQL-为什么我需要一个ID来进行邮寄通话?

时间:2019-04-29 21:38:01

标签: mongodb json-api

我正在使用JAGQL构建兼容JSON API的快递服务器。我背后的数据库是MongoDB(jsonapi-store-mongodb)。我也在这里发布了我的问题:https://github.com/holidayextras/jsonapi-store-mongodb/issues/59

根据JAGQL文档https://jagql.github.io/pages/project_setup/resources.html#generateid

有人告诉我

  

generateId

     

默认情况下,服务器会为未指定ID创建的资源自动生成UUID。要禁用此行为(例如,如果数据库通过自动递增生成ID),请将generateId设置为false。如果资源的ID不是UUID,则还必须指定具有正确类型的id属性。有关此类资源的示例,请参见/examples/resorces/autoincrement.js。

但是当我向其中一个资源发送POST请求时,我得到了:

"jsonapi": {
    "version": "1.0"
},
"meta": {},
"links": {
    "self": "/myresource"
},
"errors": [
    {
        "status": "403",
        "code": "EFORBIDDEN",
        "title": "Param validation failed",
        "detail": [
            {
                "message": "\"id\" is required",
                "path": [
                    "id"
                ],
                "type": "any.required",
                "context": {
                    "key": "id",
                    "label": "id"
                }
            }
        ]
    }
]

我想念什么?

1 个答案:

答案 0 :(得分:0)

有关更多详细信息,请参见此处:https://github.com/jagql/framework/issues/106

在资源定义中,您要添加primaryKey: 'uuid'

{
    resource: 'things',
    handlers,
    primaryKey: 'uuid',
    attributes: {       
        ...
    }
 }