我正在使用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"
}
}
]
}
]
我想念什么?
答案 0 :(得分:0)
有关更多详细信息,请参见此处:https://github.com/jagql/framework/issues/106
在资源定义中,您要添加primaryKey: 'uuid'
:
{
resource: 'things',
handlers,
primaryKey: 'uuid',
attributes: {
...
}
}