首页 > 其他分享 >日常学习--调用第三方接口和提供第三方接口时的注意事项--20240728

日常学习--调用第三方接口和提供第三方接口时的注意事项--20240728

时间:2024-07-28 23:28:42浏览次数:12  
标签:调用 -- 对接口 接口 重试 次数 第三方

1、调用第三方接口的注意事项
  •     接口测试与验证:
    • 对第三方接口进行充分的测试,包括功能测试、性能测试和安全测试,确保接口的稳定性和安全性。
    •  验证接口的可用性,包括接口地址、请求方式、请求参数、响应格式等是否正确。
  •     参数校验与日志记录:
    • 在调用接口前,对请求参数进行严格的校验,确保数据的正确性和完整性。
    • 记录接口调用的入参和出参日志,以便在出现问题时进行排查。
  •     异常处理与重试机制
    • 实现异常捕获机制,对接口调用过程中可能出现的异常进行捕获和处理。
    • 对于可能因网络波动或第三方服务故障导致的调用失败,实现合理的重试机制,但需注意设置重试次数和间隔,避免造成雪崩效应。
      • 可以自定义重试机制,通过定时任务线程池在任务失败后,间隔一定时间重试一定次数,超过额定次数,记录调用失败日志(有必要的时候还可以发送邮件、短信等通知运维人员,(实时性要求较高的))
      • 使用spring Retry等工具实现,@Retryable注解中设置捕获何种异常才开始重试、重试次数和间隔,还可以通过@Recover实现自动恢复,可以在其中实现记录调用日志,发送警告等逻辑
  •     安全性考虑:
    • 如果接口涉及敏感信息,需要确保数据传输过程中的安全性,如使用HTTPS协议。
    • 对于需要鉴权的接口,确保鉴权信息的正确性和安全性。
  •     性能优化:
    •  根据业务需求,合理设置接口的调用频率和并发量,避免对第三方服务造成过大压力。
    • 使用缓存技术减少不必要的接口调用,提高系统性能。
2、实现接口并提供给第三方调用的注意事项
  •     接口设计与文档:
    • 设计清晰、易于理解的接口,遵循RESTful等标准API设计规范。
    • 提供详细的接口文档,包括接口地址、请求方式、请求参数、响应格式、错误码等信息。
  •     鉴权与安全性:
    • 对接口进行鉴权,确保只有合法的第三方才能调用接口。
      • 即通过apikey或者apikey+时间戳等方式(接口数据不算敏感和机密,无需登录第三方系统)或者通过OATUH认证和JWT令牌机制等方式(一般需要登录第三方)确保调用接口第三方合法
      • 一般会通过双方约定好的签名算法和secret key来生成签名进行
    • 对敏感数据进行加密处理,确保数据传输过程中的安全性。
  •     限流与并发控制:
    • 实现限流策略,如令牌桶算法、漏桶算法等,避免第三方对接口进行恶意请求或高并发请求导致服务不可用。
      • 令牌桶算法和漏桶算法主要是限制单位时间内调用接口的次数(不包含桶的原有容量)
      • spring  aop + 自定义的限制调用的注解方式主要是限制接口在窗口时间内能调用的次数;同样的Interceptor和filter也能实现类似限制接口调用次数,防止恶意的第三方攻击
    • 监控接口的调用情况,根据实际情况调整限流策略。
  •     性能优化:
    • 对接口进行性能优化,如使用缓存技术减少数据库查询次数、优化SQL语句等。
    • 对于耗时较长的操作,考虑使用异步处理或消息队列等方式进行解耦。
  •     监控与告警:
    • 实时监控接口的调用情况、响应时间、错误率等指标。
    • 设置告警阈值,一旦接口性能出现异常或达到告警阈值,及时通知相关人员进行处理。
  •     版本控制:
    • 对接口进行版本控制,确保接口的兼容性和稳定性。
    • 在接口升级时,提前通知第三方并给出合理的升级时间和方案。

标签:调用,--,对接口,接口,重试,次数,第三方
From: https://blog.csdn.net/xxm13679073037/article/details/140758007

相关文章

  • CF526G Spiders Evil Plan 题解
    Description给定一棵\(n\)个节点的无根树,每条边有边权。有\(q\)次询问,每次询问给出\(x,y\),你需要选择\(y\)条树上的路径,使这些路径形成一个包含\(x\)的连通块,且连通块中包含的边权和最大。\(n,q\le10^5\),强制在线。Solution考虑只有一组询问怎么快速求答案。容......
  • 麦克斯韦方程组解析——电磁理论的基石与奥秘
    麦克斯韦方程组解析——电磁理论的基石与奥秘麦克斯韦方程组的核心作用组件/步骤描述麦克斯韦方程组描述电磁场的基本方程组,由四个主要方程构成功能揭示电场、磁场与电荷、电流之间的关系,是电磁理论的基础应用领域广泛应用于电子学、光学、通信等领域其基本公式如下:高......
  • 旅行
    怎么感觉杭电OJ有好几台不同的评测机,而且评测机之间不但速度不同,而且对代码长度的统计都不同?理论上答案是可以超过int存储范围的,反正没有这种数据,我不管了点击查看代码#include<bits/stdc++.h>usingnamespacestd;vector<int>a[200005];intc[200005],w[200005];intf......
  • 学习嵌入式的第五天---选择语句,循环语句
    任何一个程序,都是这三种结构组成(顺序结构、选择结构、循环结构)比较----------选择提供判断条件--------------进行选择c语言中通过关系运算和逻辑运算构造,选择判断条件关系运算> >= < <= == !=  intn;  n>5---------关系表达式,表达式都是有值,结果反映一......
  • 全场景多设备协同:HarmonyOS跨端体验创新与应用接续能力
    文章目录一、能力开放,简单易集成的API,赋能生态应用创新跨端体验1.1体验创新1.2一套工程代码,一次开发上架,多端按需部署1.3接续1.3.1接续的流程1.3.2接续代码示例1.3.3三方应用框架的兼容(以QT框架为例)二、案例分享:起点读书2.1多屏适配方案2.2多设备应用接续能力2......
  • SearchGPT的初次评测出炉:响应迅速且无广告,被誉为“OpenAI的王牌”
    OpenAI此次推出的SearchGPT引起了广泛关注——最新发布的SearchGPT已经迎来了第一批用户的体验分享。根据测试者的反馈,SearchGPT的响应速度和输出速度都非常快。尤其是在与其他工具的对比中,有用户表示其速度快得令人难以置信,并希望在开放使用后依然能保持这种速度。......
  • LangChain4j-RAG高级-检索增强器
    RetrievalAugmentor检索增强器RetrievalAugmentor是RAG管道的入口点。它负责使用从各种来源检索的相关Content来扩充ChatMessage。可以在创建AiService期间指定RetrievalAugmentor的实例:Assistantassistant=AiServices.builder(Assistant.class).........
  • Linux常用命令—权限
    Linux常用命令Linux是一个强大的操作系统,广泛应用于服务器、开发和嵌入式系统中。掌握一些常用的Linux命令对于高效地使用系统非常重要。以下是常用的Linux命令和说明。Linux权限管理 //Linux权限管理操作系统中每个文件都拥有特定的权限、所属用户和所属组。   ......
  • Linux常用命令
    Linux常用命令Linux是一个强大的操作系统,广泛应用于服务器、开发和嵌入式系统中。掌握一些常用的Linux命令对于高效地使用系统非常重要。以下是常用的Linux命令和说明。ps-ef|grep:查询进程//查询进程 //ps-ef|greppid //ps-ef|grep端口号 //ps-ef|grep......
  • ISP-BNR 模块去噪方法对比
    在图像信号处理(ISP)中,Bayer噪声去除(BNR)是关键的一步。本文将介绍几种常用的去噪方法,包括中值滤波、均值滤波、双边滤波、高斯滤波和非局部均值滤波,并通过示例代码进行对比分析。1.图像去噪方法简介中值滤波(MedianFiltering)中值滤波是一种非线性滤波方法,通过取窗口内所有......