gpt4 book ai didi

c# - 创建 REST API 以允许上传大型数据集

转载 作者:太空宇宙 更新时间:2023-11-03 12:06:02 25 4
gpt4 key购买 nike

我目前正在创建一套 REST API,用于将不确定数量的信息行上传到我们的数据库。这些 API 将由第三方公司团队的开发人员使用。

信息量将从每天批量上传大约 4000 行信息开始,估计在大约 4 个月内增加多达 5000 行信息。我的问题是,设计上述上传 API 的最佳方式是什么?

在我写下一些想法之前,我一直在阅读这里的一些注意事项。

  • 信息上传和这些 API 的使用几乎总是每天只进行一次。
  • 一行信息的整体结构是这样的,乘以 4k。

    “数据”:[
    {"InfoID": 1, "InfoName": "HELLO", "InfoValue": 1.00, "InfoDate": "2019-01-01"},
    {“InfoID”:2,“InfoName”:“世界”,“InfoValue”:2.00,“InfoDate”:“2019-01-02”}
    ]

我在设计此类 API 时读到的一些想法是:

  • 使用页码信息控件限制可以在 JSON 参数上上传的信息行数。这意味着第三方团队在从他们的数据库中检索和上传信息时必须实现上述分页控制。
  • 上传 CSV 文件。这也可能实现文件上传的分页,以防文件太重。
  • 一个可以逐行上传信息的 POST API,但我认为这不是此类大型数据集的最佳选择。

任何意见、建议和想法都有助于做出设计决策。

最佳答案

我会建议接受 POST 请求的单个端点。让请求的主体是整批数据,无论您选择何种格式接受它 - JSON、XML、CSV 等。让客户端指定 Content-Type header 以指示它们的格式正在发送信息。解析该格式以应用该批更改。如果要花超过一秒左右的时间才能回复,请立即发送一个 202 Accepted 和一个带有端点的 Location header ,他们可以在该端点获得进度报告批处理正在进行中。

请注意,您必须决定如何处理其中包含一些错误条目的上传 - 要么让整批都失败,要么接受你能接受的。

分页可能有点矫枉过正。根据您给出的示例,5k 条目可能小于一兆字节?权衡一下客户不得不使用分页的烦恼。作为客户,我不想那样做。

由于性能成本,要求客户端 POST 4k 次以获取所有数据可能不是正确的想法。客户端也不太可能希望自己解析数据来编写循环。

关于c# - 创建 REST API 以允许上传大型数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55028900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com