use*_*445 6 javascript api-design
我需要设计一个 REST API 来导入一个包含 30 列的员工 CSV 文件。文件中的记录数可能因业务规模而异,可能是 10,可能是 5000。
这是我的设计方法
在前两个选项的情况下,用户应该在发送之前读取 CSV 并转换为 JSON。
问题
因为我对javascript不熟悉,所以我的回答将集中在问题1,关于如何设计一个用于导入大量数据的api。一般有两种方式,同步和异步。
为了避免将数据导入数据库的漫长等待,我们应该限制每个请求的数据行数。如果用户导入的数据超出限制,前端需要将数据拆分成多个请求。为了更好的用户体验,我们可以显示当前的导入进度。
与同步方式相比,异步方式的实现要复杂一些。
1.我们可以将csv或json文件上传到Amazon S3,然后通过api将文件地址发送到服务器。
2.异步worker从s3下载文件后开始将数据导入数据库。为了避免数据库阻塞,我们还要批量导入。3.为了获取导入进度,前端通过api轮询或服务器在导入完成后通知前端。
两种方式都有优点和缺点,您选择哪种方式取决于数据量和实现复杂性之间的权衡。
| 归档时间: |
|
| 查看次数: |
615 次 |
| 最近记录: |