随着低代码和无代码工具的出现,构建API比以往任何时候都更简单、更快。不过因为开发简单了,开发者很容易忽略一些潜在的问题,导致整个业务的下游影响。

在设计阶段多花点时间,可以确保API真正有用、安全、可扩展和稳定。

本文会讨论API开发者需要避免的10个常见错误,帮助我们开发更高质量的API。

API开发者需要避免的10个常见错误

1、API开发者的错误导致臃肿的响应

从编写代码的角度来看,调用返回整个对象,比返回特定的参数要容易得多。但问题是这种调用造成的问题大于其带来的价值。这些臃肿的响应参数对使用者毫无意义,还会影响两端的延迟和带宽。

所以需要在方法中建立灵活性,让使用者可以自由选择,是返回完整对象,或者所需的特定参数。

** 2、多个场景隔离调用**

单独的测试单个方法仅对单元测试有用,但这并不能保证同样的方法也能在应用生态系统中发挥作用。我们可以在单元测试中获得积极的结果,但在实际使用测试中会遇到错误。为避免此问题,我们需要在多个场景中运行每种方法,以确保效果。

3、不了解需要解决的问题

当需求与开发人员认为的问题之间存在脱节时,问题肯定会出现。这种不幸但常见的错误会让使用者失望,也会浪费我们的时间去返工重做。为了避免这个问题,需要评估整个工作流程以了解它是如何适应的。

4、API开发者的错误导致耗时的故障排除

当错误消息提示对消费者没有意义时,它会在两端造成不必要的工作。消费者必须花费数小时来解决问题。到最后,我们也不得不帮助他们,并最终进行一些返工以创建更有用的错误消息提示。我们需要通过准确地解释每一个错误的含义和出错的地方来创建有用的错误消息提示。此外,坚持使用众所周知的状态代码。

5、忽略可扩展性

随着时间的推移、使用量的增加,对系统提出了更高的要求。应用程序编程接口需要适当地处理需求和扩展。在设计阶段规划可扩展性可以帮助避免这个问题。

6、缺少帮助文档

当缺少帮助文档时,没人会深入使用我们新开发的应用程序编程接口。此问题会导致满意度降低和无休止的故障排除。提供解释如何使用API的综合帮助文档。确保文档保持最新;这让使用者知道如何使用任何功能。

7、输入验证不足

当我们没有在数据验证上花费足够的时间时,总会有人发现导致问题的漏洞。它可以简单到在看似无害的字段中传递无效数据。花点时间验证使用者发送的每个输入,以最小化发生这种情况的机会。

8、高轮询请求处理不当

寻找最新数据的使用者高频提出请求,容易给系统带来不必要的压力。与其让客户请求更新,不如使用webhooks之类的框架,在数据发生变化时推送更新的数据。这可以减少不必要的轮询。

9、冗余端点

冗余端点是支持和重构的噩梦。当多个端点返回相同的数据时,就会发生这种API开发的错误,因为我们需要对引用该数据的所有端点进行更新。在实施新端点以支持各种用例时,请密切关注更新,确保没有端点包含可能会重复使用的相同信息。

10、没有针对性能进行优化

发送多个请求来完成一项任务会导致延迟和带宽开销。我们可以通过将这些小请求批量处理为一次调用来优化性能。这些批量的处理请求对于想要为同一进程发送大量请求的使用者非常有用。

使用 Eolink 创建功能齐全的API

开发健全的、可扩展且有用的API并不一定很复杂。如果我们遵循一些额外的步骤并避免这 10 个容易出现的API开发错误,就可以最大限度地减少返工并创建一个提供大量价值的全功能 API。除此之外,使用Eolink这类可视化的API开发工具,也可以帮助我们快速轻松地构建 API。

图中所使用的的接口管理工具是eolink,可以对不同类型的接口进行测试,在测试流程中也支持添加不同步骤,感兴趣可以自行使用:www.eolink.com

API 开发者需要避免的10个错误【翻译】的更多相关文章

  1. python开发者常犯的10个错误(转)

    常见错误1:错误地将表达式作为函数的默认参数 在Python中,我们可以为函数的某个参数设置默认值,使该参数成为可选参数.虽然这是一个很好的语言特性,但是当默认值是可变类型时,也会导致一些令人困惑的情 ...

  2. [转载]有经验的Java开发者和架构师容易犯的10个错误

    首先允许我们问一个严肃的问题?为什么Java初学者能够方便的从网上找到相对应的开发建议呢?每当我去网上搜索想要的建议的时候,我总是能发现一大堆是关于基本入门的教程.书籍以及资源.同样也发现网上到处充斥 ...

  3. Java开发者写SQL时常犯的10个错误

        首页 所有文章 资讯 Web 架构 基础技术 书籍 教程 我要投稿 更多频道 » - 导航条 - 首页 所有文章 资讯 Web 架构 基础技术 书籍 教程 我要投稿 更多频道 » - iOS ...

  4. Python开发者最常犯的10个错误

    Python是一门简单易学的编程语言,语法简洁而清晰,并且拥有丰富和强大的类库.与其它大多数程序设计语言使用大括号不一样 ,它使用缩进来定义语句块. 在平时的工作中,Python开发者很容易犯一些小错 ...

  5. C# 程序员最常犯的 10 个错误

    关于C# C#是达成微软公共语言运行库(CLR)的少数语言中的一种.达成CLR的语言可以受益于其带来的特性,如跨语言集成.异常处理.安全性增强.部件组合的简易模型以及调试和分析服务.作为现代的CLR语 ...

  6. C# 程序员最常犯的 10 个错误(转)

    关于C#关于本文常见错误 #1:把引用当做值来用,或者反过来常见错误 #2:误会未初始化变量的默认值常见错误 #3:使用不恰当或未指定的方法比较字符串常见错误 #4:使用迭代式 (而不是声明式)的语句 ...

  7. C# 程序员最常犯的 10 个错误http://www.oschina.net/translate/top-10-mistakes-that-c-sharp-programmers-make

    来源:http://www.oschina.net/translate/top-10-mistakes-that-c-sharp-programmers-make 关于C# C#是达成微软公共语言运行 ...

  8. Java程序员常犯的10个错误

      本文总结了Java程序员常犯的10个错误. #1. 把Array转化成ArrayList 把Array转化成ArrayList,程序员经常用以下方法: List<String> lis ...

  9. Web开发人员常犯的10个错误

    说到开发一个运行在现代网络中的网站:Web开发人员需要选择虚拟主机平台和底层数据存储,准备编写HTML.CSS和JavaScript用的工具,要有设计执行方式,以及一些可用的JavaScript库/框 ...

随机推荐

  1. C#关于在返回值为Task方法中使用Thread.Sleep引发的思考

    起因 最近有个小伙伴提出了一个问题,就是在使用.net core的BackgroundService的时候,对应的ExecuteAsync方法里面写如下代码,会使程序一直卡在当前方法,不会继续执行,代 ...

  2. 宝藏发现之API接口高效协作神器Apifox

    概述 背景 Apifox官方地址 https://www.apifox.cn/ 前面文章我们已经围绕微服务展开,缺少一个关键前置流程,那就是API接口设计,而在API接口设计开始前本篇先推荐一个非常好 ...

  3. 实战|Linux大文件切割

    一个执着于技术的公众号 日常工作中需要对日志文件进行分析,当日志文件过大时,Linux中使用vim.cat.grep.awk等这些工具对大文件日志进行分析将会成为梦魇,具体表现在: 执行速度缓慢,文件 ...

  4. 新鲜出炉:appium2.0+ 单点触控和多点触控新的解决方案

    在 appium2.0 之前,在移动端设备上的触屏操作,单手指触屏和多手指触屏分别是由 TouchAction 类,Multiaction 类实现的. 在 appium2.0 之后,这 2 个方法将会 ...

  5. 使用VUE+SpringBoot+EasyExcel 整合导入导出数据

    使用VUE+SpringBoot+EasyExcel 整合导入导出数据 创建一个普通的maven项目即可 项目目录结构 1 前端 存放在resources/static 下 index.html &l ...

  6. 力扣算法:LC 704-二分查找,LC 27-移除元素--js

    LC 704-二分查找 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1. 示例 ...

  7. 一文带你读懂 Hbase 的架构组成

    hi,大家好,我是大D.今天咱们继续深挖一下 HBase 的架构组成. Hbase 作为 NoSQL 数据库的代表,属于三驾马车之一 BigTable 的对应实现,HBase 的出现很好地弥补了大数据 ...

  8. 【多线程】守护线程 Daemon

    守护线程 Daemon 线程分为用户线程和守护线程 虚拟机必须确保用户线程执行完毕 虚拟机不用等待守护线程执行完毕 如,后台记录操作日志,监控内存,垃圾回收等待.. 代码示例: /** * @Desc ...

  9. 739. Daily Temperatures - LeetCode

    Question 739. Daily Temperatures Solution 题目大意:比今天温度还要高还需要几天 思路:笨方法实现,每次遍历未来几天,比今天温度高,就坐标减 Java实现: p ...

  10. linux篇-Centos7构建NFS服务器和连接

    准备两台centos7虚拟机 192.168.30.133 192.168.30.129 2.192.168.30.1(服务端), 3查看rpc服务是否启动 4测试安装是否成功 5修改配置文件vi/e ...