Kubernetes 源码剖析与实战
孔令飞
前腾讯云专家工程师
1233 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已更新 22 讲/共 55 讲
Kubernetes 源码剖析与实战
15
15
1.0x
00:00/00:00
登录|注册

20 | 请求路径构建(上):如何设置RESTful API接口路径?

你好,我是孔令飞。
kube-apiserver 本质上是一个 Web 服务器,对外提供标准化的 RESTful API 接口。RESTful API 接口由请求方法、请求路径和请求参数构成。想要深入理解 kube-apiserver 的核心实现,就需要掌握 Kubernetes 构建 RESTful API 接口的三要素。
前面两节课已经介绍了 Kubernetes 资源对象的定义方法,它正是基于这些标准化的资源对象自动构建 RESTful API 接口的请求方法、路径和参数。
请求方法可以在发送 HTTP 请求时直接指定。请求参数也可以直接通过 HTTP 请求来设置,例如,创建 Kubernetes 资源时,请求体直接就是资源对象的 YAML 定义。请求路径的构建比较复杂,所以接下来两节课会详细介绍它的构建逻辑。

REST 接口规范

深入理解 kube-apiserver RESTful API 接口请求路径构建方式之前,我先来介绍下 REST 接口规范中的核心内容。
REST 规范中的核心点包括 URI 设计、API 版本管理等,我们一一来说。

URI 设计

资源都是使用 URI 标识的,我们应该规范化设计 URI,让 API 接口更加易读、易用。以下是 URI 设计时应该遵循的一些规范:
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
  • 解释
  • 总结

1. REST接口规范中的URI设计规范包括资源名使用名词复数表示,URI路径使用小写,避免层级过深的URI,以及将操作变成资源的一个属性或将操作当作是一个资源的嵌套资源。 2. RESTful API使用HTTP协议原生的`GET`、`PUT`、`POST`、`DELETE`来标识对资源的CRUD操作,同时还提供了其他请求方法,如`OPTIONS`,并且在使用HTTP方法时需要注意返回结果的可用性和对资源进行状态/属性变更时要使用`PUT`方法。 3. 统一的返回格式和API版本管理是RESTful API设计中的重要内容,统一的返回格式可以减少用户的学习和使用成本,而API版本管理可以保证新老版本共存,满足新需求。 4. API版本标识可以放在URL中、HTTP Header中或Form参数中,通常建议将版本标识放在URL中,但根据项目实际需要选择一种方式即可。 5. 请求路径的构建比较复杂,需要深入理解kube-apiserver RESTful API接口请求路径构建方式。 6. 资源都是使用URI标识的,应该规范化设计URI,让API接口更加易读、易用。 7. RESTful API接口由请求方法、请求路径和请求参数构成,请求方法可以在发送HTTP请求时直接指定,请求参数也可以直接通过HTTP请求来设置。 8. 在设计URI时,如果遇到一些不确定的地方,推荐参考REST接口规范中的URI设计规范。 9. Kubernetes的RESTful API接口路径设计基于资源类型、分组和版本三要素共同构建,通常格式为`/{API接口前缀}/{API版本}/{API分组}/{资源种类}`。 10. Kubernetes的路径设计引入Group-Version-Resource (GVR)三元组概念,采用「资源组优先+多版本共存」结构,严格遵循REST规范,保证资源可管理性并提供清晰API扩展框架。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Kubernetes 源码剖析与实战》
新⼈⾸单¥68
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部
文章页面操作
MAC
windows
作用
esc
esc
退出沉浸式阅读
shift + f
f11
进入/退出沉浸式
command + ⬆️
home
滚动到页面顶部
command + ⬇️
end
滚动到页面底部
⬅️ (仅针对订阅)
⬅️ (仅针对订阅)
上一篇
➡️ (仅针对订阅)
➡️ (仅针对订阅)
下一篇
command + j
page up
向下滚动一屏
command + k
page down
向上滚动一屏
p
p
音频播放/暂停
j
j
向下滚动一点
k
k
向上滚动一点
空格
空格
向下滚动一屏
播放器操作
MAC
windows
作用
esc
esc
退出全屏
⬅️
⬅️
快退
➡️
➡️
快进
空格
空格
视频播放/暂停(视频全屏时生效)