API Architectural Styles 整理及认知

疑惑一号疑惑一号 in 后端 2022-11-06 11:00:21

由于我之前一直在想弄明白,K8S里面的一些API是什么,这些天我一直在找相关API的资料。在大学中,教科书上面简简单单的一句:api是各个系统交换数据的接口,把我脑海中的API认知给简单弱智化了,不了解内部的机制是什么,现在终于搞清楚了。

首先要介绍一个概念:
Architectural Styles for APIs
API 也有不同的标准,这个标准按照时间线来表述就如下图所示,离现在 2022 年最近的一个标准是 gRPC。
API TIMELINE
虽说有这么多的 API 标准,但是最重要的几个标准分别为:
SOAP, REST and RPC。
这几个标准之间的区别看下图:
SOAP vs REST vs GraphQL vs RPC. The diagram below illustrates the API timeline and API styles comparison
请大家不要以这个时间来判断什么 API 标准会比较好,我之前也犯过这种错,每种技术有不同的使用场景,也要看每家公司的情况来,我和小伙伴讨论,现在公司用的最多的是 REST

REST — REpresentational State Transfer 直接翻译:表现层状态转移

RESTful 可以通过一套统一的接口为 Web,iOS 和 Android 提供服务。

我现在暂且认为 REST 和 RESTful 是一个意思,如果再发现区别,我再过来修改。

第二个概念是:REST API 接口

参考:https://www.redhat.com/zh/topics/api/what-is-a-rest-api

REST 是一组架构规范,并非协议或标准。API 开发人员可以采用各种方式实施 REST。

有空再来写具体的实现细节。

第三个是 RESTful 有一些其他的 API

RESTful 下面的子集(SwaggernodeopenAPI)

第四个是 K8S 用的是什么 API

https://kubernetes.io/zh/docs/concepts/overview/kubernetes-api/

我在官网查到的记录是 OpenAPI V2 or OpenAPI V3 规范设计

https://kubernetes.io/zh/docs/reference/using-api/api-concepts/

-- End --

相关推荐