首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用JsonApiFramework获取相关资源

无法使用JsonApiFramework获取相关资源
EN

Stack Overflow用户
提问于 2016-12-19 19:31:34
回答 1查看 182关注 0票数 0

使用https://github.com/scott-mcdonald/JsonApiFramework框架

我从UI中发送以下修补程序:

{"data":{"id":"4221fe2f-ca7b-425d-b45a-a09f4936a22b","attributes":{"contact-trade-name":"asdad","contact-name":"aasd","contact-phone":"asdad","contact-email":"asdad@adasd.asd","created-date":"2016-12-19T14:07:59.833","status":"AwaitingBillData"},"relationships":{"share-user":{"data":{"type":"users","id":"5078b2ee-2348-44f5-95a0-3c14c2ad2b1d"}}},"type":"jobs"}}

在我的服务器上,我执行以下操作:

using (var documentContext = new DocumentContext(HttpContext.Current.Request.Url, document)) { var job = documentContext.GetResource<Job>(); var relationships = documentContext.GetResourceRelationships(job); var shareUserRel = relationships["share-user"]; var shareUser = documentContext.GetRelatedResource<Data.ServiceModel.User>(shareUserRel); }

然而,shareUser总是null

当我检查shareUserRel时,它有以下几点:

{ResourceIdentifier [type=users id=5078b2ee-2348-44f5-95a0-3c14c2ad2b1d]}

如果有帮助的话。

有什么明显的证据表明我做错了什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-11 02:03:14

要将json:api文档格式化为可读性,如下所示:

代码语言:javascript
复制
{
  "data": {
    "type": "jobs"
    "id": "4221fe2f-ca7b-425d-b45a-a09f4936a22b",
    "attributes": {
      "contact-trade-name": "asdad",
      "contact-name": "aasd",
      "contact-phone": "asdad",
      "contact-email": "asdad@adasd.asd",
      "created-date": "2016-12-19T14:07:59.833",
      "status": "AwaitingBillData"
    },
    "relationships": {
      "share-user": {
        "data": {
          "type": "users",
          "id": "5078b2ee-2348-44f5-95a0-3c14c2ad2b1d"
        }
      }
    }
  }
}

GetRelatedResource返回null的原因是,您要求文档上下文返回文档中包含的实际用户资源,文档中不存在该资源。

当客户端在补丁中发送这种类型的json:api文档时,您将指示服务器用给定的属性更新作业资源,并将此作业资源与在to-one资源链接中指定的现有用户资源关联起来。

在示例中有了relationship对象之后,更正确的内容如下:

代码语言:javascript
复制
if (shareUserRel.IsResourceLinkageNullOrEmpty())
{
  // Clear any linkage between the job resource and any current user
  ...
}
else
{
  var shareUserResourceIdentifier = shareUserRel.GetToOneResourceLinkage();
  // Create linkage between the job resource and existing user identified
  // by shareUserResourceIdentifier
  ...
}

现在你如何处理“.”取决于您的数据层。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41229704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档