接口注意事项

接口,注意事项 · 浏览次数 : 16

小编点评

**1. 同步** **优点:** - 实时性强,流程容易控制 - 不需要等待接口返回数据 **缺点:** - 需要阻塞等待 **2. 异步** **优点:** -无需等待接口返回数据 - 流程控制较为复杂,但可能需要回调操作,更多的多线程开销 **3. 参数** - 实体类、map... 都可以接收数据 **4. 鉴权放通** - 仅需提供给系统之间调用 **5. 数据量** - 考虑使用消息队列异步地对数据进行备份操作 **6. redis** - 考虑缓存热点数据 **7. 分页存** - 考虑分页存数据 **8. 请求接口超时时间** - 可以使用 try catch,log日志写的是否合理 **9. 请求接口超时了怎么办** - 可以设置请求接口的超时时间 **10. try catch** - 可以捕获异常,并记录日志 **11. ftp输出到的文件数据过大怎么办?** - 可以切片存储数据 **12. 一次性存/读是否合理?** - 考虑在读取之前进行数据校验 **13. 数据来源如何注明?** - 可以使用接口返回的参数,或者在数据读取的时候进行判断 **14. 总结** - 同步适合需要实时处理的数据,而异步适合需要处理大量数据或需要进行数据库或FTP数据备份等操作的场景。

正文

1 接收接口使用同步或异步的优缺点

  • 同步:需要等待接口返回数据才能往下执行
    • 优点:实时性强,流程容易控制
    • 缺点:需要阻塞等待
  • 异步:无需等待接口返回数据即可往下执行
    • 优点:无需阻塞等待
    • 缺点:流程控制较为复杂,可能需要回调操作,更多的多线程开销

使用场景:需要根据具体业务需求判断,流程是否强依赖接口返回的数据。

2 大规模的接收接口是否会对系统造成堵塞,是否考虑增加中间件进来(比如redis or 队列)

存在这种可能,接收接口接收到数据之后,如果需要同步数据到数据库或者备份数据到 ftp 服务器,都需要较大的资源开销。

数据量较大时,使用消息队列异步地对数据进行备份操作是较好的选择。

3 接口接收参数是用什么去接收?实体类、map...?

都可以,具体看接口提供方的参数形式

4 鉴权放通?

主要看接口是提供给谁使用的。

  • 对外提供给用户使用:需要鉴权
  • 对内提供给系统之间调用:可以放通,也可以鉴权

5 数据量一大,是否考虑多线程,以及一些线程问题,资源释放等等。以及数据库建立链接,事务等等

如果使用多线程,需要考虑线程安全,线程池,线程间通信等问题

6 考虑redis存储结构等等

接口调用频率如何,是否缓存热点数据

7 是否分页存,读等等

考虑数据量

8 请求接口超时时间有没有处理

9 请求接口超时了怎么办

10 是否try catch,log日志写的是否合理

11 ftp输出到的文件数据过大怎么办?

考虑切片存储

12 一次性存/读是否合理,有没必要分全量接口和增量接口

增量要考虑是靠什么判断是新增的数据,变更的数据是否需要提供等

13 数据来源于多种厂商是不是可以注明来源,这种就知道哪些厂商数据有问题

与接口注意事项相似的内容:

接口注意事项

接口注意事项

[转帖]setsockopt(setsockopt的使用方法及注意事项)

http://xingzuo.aitcweb.com/9156453.html 1. setsockopt简介 setsockopt是一个系统调用函数,用于设置套接字选项。套接字是指通信的两个端点之间的一种接口,可用于实现网络通信和进程间通信。使用setsockopt可以设置各种套接字选项,例如:超

对象业务的追加写接口

类似文件的追加写操作,在对象的末尾增加新的数据内容。 本文有如下假定: 对象存储服务基于文件语义实现。 使用PUT方式上传的对象,内部使用一个文件和对应的元数据来承载。 使用多段方式上传的对象,内部使用多个段文件、元数据来承载,其中每个段文件可管理独有的元数据。 下面讨论追加写操作时的方案和注意事项

痞子衡嵌入式:i.MXRT1xxx系列MCU外接24MHz有源晶振的方式与注意事项

大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是i.MXRT1xxx系列MCU外接24MHz有源晶振。 今天有客户咨询痞子衡:官方 i.MXRT1xxx 开发板都是外接 24MHz 无源晶振给主芯片 XTALI,XTALO 引脚,那么是否可以使用 24MHz 有源晶振呢?答案当然是可

基于EasyCode定制Mybatisplus全自动单表实现:新增/批量新增/修改/批量删除/分页查询/ID查询

基于EasyCode定制Mybatisplus全自动单表实现CRUD接口 分页查询 ID查询 新增 批量新增 修改 批量删除 注意使用了MybatisPlus的自动填充功能,和insertBatchSomeColumn扩展批量插入功能,分页插件 需要几个增加插件实现类 自动填充 package co

利用ChatGPT提升测试工作效率——测试工程师的新利器(一)

在测试工作中可以辅助功能测试包括需求分析或解读代码(注意代码安全)后生成测试用例,还可以辅助生成代码,接口测试用例,自动化脚本等各个方向起作用。当然实际使用中可能会因为提示词的不同生成的结果需要人工多次对话训练才可以。但是使用chatGPT肯定比不用能提高工作效率。当然具体落地后如何进行量化提效抽象...

执行SQL语句&存储过程的真正【神器】,不用ORM的全选它,比dapper好

支持.Net Core(2.0及以上)与.Net Framework(4.0及以上)(注意:升级了,可以覆盖到早期的.Net Framework4.0了,而且修复了数据库字段为Null时报错的问题,无敌了!!) 此工具在IDataAccess接口中提供。 已被.Net圈内多家大厂采用! IDataA

【Spring】BeanPostProcessor后置处理器

BeanPostProcessor后置处理器是Spring提供的一个扩展点,可以在Bean初始化前后做一些事情,注意这里是bean的初始化,不是实例化,BeanPostProcessor是一个接口,里面提供了两个方法,分别为postProcessBeforeInitialization(初始化之前)

[转帖]docker build 中的 -f 选项

https://www.jianshu.com/p/06c35fd299b7 需要注意的是,在 docker build 命令接收的参数中,提供给 docker build 命令的 -f 选项应该 Dockerfile 路径名。如果 Dockerfile 文件就叫 Dockerfile 那么文件名可

[转帖]Zadig : All in One 模式

https://docs.koderover.com/zadig/v1.15.0/install/all-in-one/ 注意 All in One 模式在单台云主机或者虚拟机上安装 Zadig,适合初次接触 Kubernetes 和 Zadig 并想快速上手的用户,不推荐生产使用。 #步骤 1:准