首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSON如何在从外部源获取数据时形成URI段

JSON如何在从外部源获取数据时形成URI段
EN

Stack Overflow用户
提问于 2019-03-26 01:20:39
回答 2查看 198关注 0票数 0

我正在编写一个符合https://jsonapi.org/format/标准的api规范。在下面的场景中,我很难确定要实现的正确uri格式。

概述:

公司库存系统包含产品和价格信息。一种产品有很多价格。库存系统通过API将数据推送到本地系统,但使用库存系统主键。本地系统应将提供的数据捕获到API中,并在本地db中更新或创建价格记录。

例:

邮政/产品/. ??或邮品/产品/

代码语言:javascript
复制
{
   "data":{
       "externalId":"EIR-32432",
       "externalPriceId":xxx,
       "price":"xxx.xx",
       "currency":"USD"
   }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-27 13:00:54

您必须向表示该资源集合的URL发送一个POST请求,以便在JSON:API规范中创建一个资源:

可以通过向表示资源集合的URL发送POST请求来创建资源。请求必须包含单个资源对象作为主数据。资源对象必须至少包含一个类型成员。

该规范本身与URL命名无关,但在所有示例中都使用多元资源类型。如果您遵循相同的约定,创建产品的请求应该是POST /products

如前所述,请求必须包括一个资源对象。问题中的示例不是一个有效的资源对象,因为它错过了一个type,并且属性没有在attributes键下。用于创建产品的有效资源对象如下所示:

代码语言:javascript
复制
{
    "data":{
        "type": "products",
        "attributes": {
            "externalId": "EIR-32432",
            "externalPriceId": "xxx",
            "price": "xxx.xx",
            "currency": "USD"
        }
    }
}

还请注意,关系不应显示为属性:

虽然有一个外键(例如author_id)通常与其他要在资源对象中表示的信息一起存储在内部,但这些密钥不应该显示为属性。

从您的示例中可以看出,externalIdexternalPriceId是否是API范围内的关系。

请在规范本身:https://jsonapi.org/format/#crud-creating中找到有关在JSON:API中创建资源的更多细节,它还附带了一个示例。

票数 1
EN

Stack Overflow用户

发布于 2019-03-26 01:28:02

您可以在这里检查URI的一些命名:https://restfulapi.net/resource-naming/

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

https://stackoverflow.com/questions/55348563

复制
相关文章

相似问题

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