随着低代码和无代码工具的出现,构建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. [AcWing 26] 二进制中1的个数

    点击查看代码 class Solution { public: int NumberOf1(int n) { unsigned un = n; int res = 0; while (un) { re ...

  2. Linux主流发行版本配置IP总结(Ubuntu、CentOS、Redhat、Suse)

    我们先了解下IP的概念 IP地址简介 电脑连接互联网的必要条件:IP地址+子网掩码+网关+DNS IP地址是上网的唯一标识 - IPv4地址分类: IPv4地址分为A-E共计5类地址,其中A.B.C是 ...

  3. 不懂 Zookeeper?来看看这篇文章

    开源Linux 长按二维码加关注~ 高并发分布式开发技术体系已然非常的庞大,从国内互联网企业使用情况,可发现RPC.Dubbo.ZK是最基础的技能要求.关于Zookeeper你是不是还停留在Dubbo ...

  4. Linux下高效实用的grep命令

    Linux系统中的grep命令是一种功能强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来.grep全称是Global Regular Expression Print,表示全局正则 ...

  5. MySQL实时在线备份恢复方案

    开源Linux 长按二维码加关注~ 上一篇:2020年MySQL数据库面试题总结 快照和复制技术的结合可以保证我们得到一个实时的在线MySQL备份解决方案. 当主库发生误操作时,只需要恢复备库上的快照 ...

  6. SecureCRT使用SSH链接出现Password Authentication Failed,Please verify that the username and password are correct的解决办法(亲测有效)

  7. 层层剖析一次 HTTP POST 请求事故

    vivo 互联网服务器团队- Wei Ling 本文主要讲述的是如何根据公司网络架构和业务特点,锁定正常请求被误判为跨域的原因并解决. 一.问题描述 某一个业务后台在表单提交的时候,报跨域错误,具体如 ...

  8. ML第7周学习小结

    本周收获 总结一下本周学习内容: 1.学习了<深入浅出Pandas>的第六章:Pandas分组聚合 6.4 聚合统计 6.5 数据分箱 6.6 分组可视化 博客: pandas:聚合统计. ...

  9. Border性质习题与证明

    KMP 第一次接触 \(border\) 都是先从 KMP 开始的吧. 思想在于先对于一个串自匹配以求出 fail 指针(也就是 border) 然后就可以在匹配其他串的时候非常自然的失配转移.在此顺 ...

  10. Solon 1.8.0 发布,云原生微服务开发框架

    相对于 Spring Boot 和 Spring Cloud 的项目 启动快 5 - 10 倍 qps 高 2- 3 倍 运行时内存节省 1/3 ~ 1/2 打包可以缩小到 1/2 ~ 1/10(比如 ...