json - 设计 REST - 保存大量相关实体

标签 json api rest http

在我的系统中,我有一个实体(销售)可以为具有特定邮政编码的人提供服务。 因此,每个销售人员都可以将数千个邮政编码绑定(bind)到他的帐户。

我需要开发允许加载和编辑销售邮政编码列表的 REST API。

基本上我有两个选择:

1) 创建 2 个资源:Sales 和 SalesZip。提交销售数据,然后为每个支持的邮政编码提交 SalesZip 记录。

2) 创建销售实体,并像这样加载支持的邮政编码列表:

{
    id : 1,
    name : "John",
    zip : [
        "90231",
        "12341",
        ...
    ]
}

然后像数组一样提交邮政编码:

zip[]=90231,12341

这两种方式都有一些缺点。

如果使用第一个选项,我可能需要提交太多单独的 HTTP 请求。 如果使用第二个选项,我可能需要发送相当大的 PUT/POST 请求。

问题

我应该使用哪个选项? 设计此类功能的最佳做法是什么?

最佳答案

什么是“相当大”?

粗略估计,如果每个字符为 2 个字节,而您的邮政编码有 5 个字符,则每个代码为 10 个字节。假设US has 41,741 ZIP codes ,在美国最坏的情况下,一个在全国销售的销售员需要大约 417,410 字节或 407.6 KB 的有效负载。

平均而言,销售员属于多少个邮政编码?它是如何分布的?您多久收到一次这些请求?您可能会发现这毕竟不是那么糟糕。

没有足够的数据来做决定,但似乎第二种选择也不错。

关于json - 设计 REST - 保存大量相关实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32211991/

相关文章:

javascript - 解析 JSON 响应时出现问题

java - 在 Java 中解析 JSON 数据

获取 "watched"电影/电视节目列表或 "read"书籍列表的 Facebook API?

android - API 可以像 Android 版 Gmail 一样放置不错的广告

api - 没有运输字段的 Paypal rest api 快速结帐(WebProfile 处理)

json - 从文件 Golang 加载 Json 时没有值

c++ - 如何使用 C++ 将 csv 文件转换为 json

c# 没有向 PHP 发送 json 请求

java - 在我的项目 mvc 上集成项目 restful

wordpress - WooCommerce 看不到产品变体