别再管你的 API 叫微服务了
你是否听说过这样一句格言:”计算机科学中只有两个难题,即缓存失效和命名”?据称,菲尔-卡尔顿(Phil Karlton)曾在 1996/97 年间说过这句话。围绕这句格言确实出现了很多带有喜剧色彩的说法,它们也提到了其他的一些问题,但最近我对 API 世界的观察似乎证明了“命名”确实是个大难题:API “和 ” 微服务 ” 这两个术语存在混淆,有些人似乎已经把它们混为一谈了。 整个计算机世界都在不断变化。开发人员使用各种概念和技术,并以不同的方式将它们联系起来。因此,我们经常会使用不一致的术语,用多个术语来表达大致相同的概念,或者反之亦然,用同一个术语却表达不同的意思。 关于 API 和微服务:是的,它们是相关的概念,它们之间存在相互作用,但它们并不是同一种东西。所以,我想直截了当地说出我的看法! 什么是 API? API 是应用程序编程接口(Application Programming Interface)的缩写。维基百科指出,“总的来说,它是各种组件之间的一组明确定义的通信方法”。它可以是软件框架或库的接口,也可以是操作系统为原生系统软件(如 POSIX)开发人员公开的底层接口。 这也是 API 能够如此令人感到兴奋的一个方面,因为各种开发人员可以利用其他人构建和公开的基础设施来增强其应用程序的附加功能。 如今,当人们谈论API时,更多时候是在描述通过 HTTP 端点公开的远程接口。为了区分这些远程 API 和上面提到的本地系统 API,我将用术语“Web API”指代远程 API。(虽然有些人将这个术语用来指代浏览器的本地 API——有点令人困惑,对吧?) 我们通过底层设计范式(如查询、RPC 或 RESTful)或协议(如 SOAP、gRPC 或 GraphQL)进一步对远程 Read More …