首页 > 其他分享 >接口设计有哪些军规需要遵守

接口设计有哪些军规需要遵守

时间:2024-08-07 18:26:51浏览次数:14  
标签:请求 目的 校验 接口 API 参数 遵守 军规

1. 签名机制

  • 目的:防止API数据篡改。
  • 方法:使用MD5等算法生成签名,包含请求参数、时间戳和密钥。
  • 安全性:加入时间戳以避免请求被重复使用,设置请求过期时间。

2. 数据加密

  • 重要性:保护敏感信息,如密码、银行卡号等。
  • 实现:使用AES算法在前端加密,后端解密并校验。

3. IP白名单

  • 目的:限制接口请求来源,增强安全性。
  • 实现:仅允许白名单内的IP地址请求API。

4. 限流措施

  • 目的:防止API因高并发请求而不可用。
  • 方法:对IP、接口或用户请求次数进行限制。

5. 参数校验

  • 重要性:拦截无效请求,避免资源浪费。
  • 实现:校验必填字段、类型、长度和枚举值。

6. 统一返回格式

  • 问题:不同异常返回不同格式,不利于维护。
  • 解决:API网关统一异常结构返回。

7. 异常统一封装

  • 目的:防止敏感信息泄露。
  • 实现:异常信息统一处理,返回通用错误信息。

8. 请求日志记录

  • 重要性:快速分析和定位问题。
  • 内容:记录请求URL、参数、头、方式、响应数据和时间。

9. 幂等性设计

  • 目的:支持重复请求不产生错误数据。
  • 实现:通过数据库唯一索引或Redis保存请求参数保证幂等性。

10. 限制记录条数

  • 目的:避免接口超时或不稳定。
  • 建议:一次请求参数不超过500条记录。

11. 压力测试

  • 目的:了解接口的QPS,预估服务器节点需求。
  • 工具:使用jmeter或Apache Bench进行测试。

12. 异步处理

  • 目的:提升性能,特别是对于复杂或批量操作。
  • 实现:发送MQ消息,异步处理业务逻辑。

13. 数据脱敏

  • 目的:保护用户隐私,防止数据泄露。
  • 实现:对敏感数据进行脱敏处理。

14. 完整的接口文档

  • 重要性:减少对接时的沟通成本。
  • 内容:包括接口地址、请求方式、参数、返回值、错误信息等。

15. 请求方式选择

  • 原则:根据实际情况选择GET或POST等请求方式。

16. 请求头使用

  • 目的:简化接口设计,如权限验证、traceId等。

17. 批量操作设计

  • 目的:提高接口通用性,满足更多业务场景。

18. 职责单一原则

  • 原则:接口设计应职责单一,易于维护和扩展。

标签:请求,目的,校验,接口,API,参数,遵守,军规
From: https://blog.csdn.net/modelsetget/article/details/140998467

相关文章

  • 5-7折优惠电影票API接口,微客云提供电影票api
    正规对接途径和考虑因素API供应商:一些大型的在线票务平台:如猫眼、淘票票等,如果能与他们达成合作,可能获得稳定且正规的接口,但通常门槛较高(主要面向一些大型的、正规的、有一定规模和背景的商业伙伴,且有严格的审核流程和商务合作流程等)。影院院线自己:如果是直接和影院院线建......
  • 微信小程序-手机验证码短信登录接口(防薅方法)
    前言开发的小程序手机号短信验证码登录这一个功能,入参只有手机号。结局盗刷、恶意刷。解决方案1.nginx只允许referer是小程序来源的请求#你的接口location^~/api/{if($http_referer!~*"^https://servicewechat.com/【你的小程序appid】/\d+/page-fram......
  • 2024美团官方霸王餐API接口
    在数字化日益深入的今天,餐饮行业正经历着一场前所未有的变革。作为行业内的领军企业,美团不断推出创新服务以优化用户体验,提升商家运营效率。其中,2024年美团官方推出的霸王餐API接口便是这一趋势下的重要产物。本文将从接口的背景、功能、优势、应用场景以及未来展望等方面,深入剖析......
  • 接口
    接口的概念:接口是一个全部由抽象方法组成的集合,接口需要用interface定义,里面只能有抽象的方法和常量。接口体现的是事物扩展的功能,在Java中,类定义了一个实体,包括实体的属性,实体的行为。而接口定义了一个实体可能发生的动作,只有一个声明,没有具体的行为。当一个方法在很多......
  • Java SE核心技术——10接口
    接口就是一种规范或标准,只要符合这个标准都可以通用,接口的表现在于对行为的抽象。就好比插座,每个厂商生产的插座我们都可以用,这是因为他们有同一个标准,这里插座就是接口。//接口的定义格式与定义类的格式基本相同,将class关键字换成interface关键字,就定义了一个接口public......
  • Spring Boot 统一接口响应格式的正确姿势
    01、背景介绍熟悉web系统开发的同学可能比较熟悉,目前绝大多数的互联网软件平台基本都是前后端分离的开发模式,为了加快前后端接口对接速度,一套完善且规范的接口标准格式是非常有必要的,不仅能够提升开发效率,也会让代码看起来更加简洁、好维护。今天这篇文章,我们一起来学习一......
  • SAP PO接口报文保存到内表中
    有一个需求,接收PI传数据过来后,除整理数据保存到用户数据表外,在后期还需要把报文加工一下(要求报文内容与原接收报文一致,只是补加少量值),在发送到其它的系统。由于数据接收后已对数据加工到了用户表,已没有原报文内容(比如金额已累计),如从用户数据表中再取出数据整理加入发送出去,一是......
  • 在Python中抽象出具有相同接口的真实硬件和模拟设备
    我正在寻找一种更惯用或更简洁的OOP模式来实现与以下内容等效的功能。接口和实现fromabcimportABC,abstractmethodfromtypingimportoverrideclassDevice:"""Maininterfacethathideswhetherthedeviceisarealhardwaredeviceorasimulated......
  • 常用API_1:应用程序编程接口:String
    文章目录包packageString注意==和equals()String的对象是不可变的对象双引号""方式写出的字符串对象常用方法使用String来开发验证码代码运行结果反思包package同一个包下的程序可以直接访问访问其他包下的程序必须导包才能访问Java.lang包可以不用导,直接使用eg......
  • 接口类型的方法调用,使用匿名内部类day10
    /*接口类型的方法调用,使用匿名内部类匿名内部类:语法定义格式:new抽象类/接口(){//要重写的方法}*/interfaceInter1{voidfun1();}//classInter1ImplimplementsInter1{//@Override//publi......