API 公约

2020-03-02  本文已影响0人  cdz620

命名规范

kinds

Objects

Lists

Simple

Resource

每个API请求和返回都会包含如下字段(请求中如果没填,会采用系统默认值):

Objects

每个嵌套的Object kind,必须 要有metadata字段,metadata 必须 包含以下字段

metadata其他字段

Spec

设计规范,想要达到预期状态的描述,包含以下部分

Typical status properties(aka Condition)

Condition 代表最新观察到的object的状态

Primitive types 变量类型

Constants 常量

首字母大写驼峰式,替代枚举

union 类型

只能设置为其中的一个

Lists and Simple kinds

嵌套的metadata字段中必须包含resourceVersion,并行控制,和幂等性控制

api

PATCH 修改操作

根据Content-Type有三种PATCH操作:

JSON Patch, Content-Type: application/json-patch+json

Merge Patch, Content-Type: application/merge-patch+json

Strategic Merge Patch, Content-Type: application/strategic-merge-patch+json

http状态码

https://github.com/kubernetes/kubernetes/blob/64a0e0ee193a532cdcaf30330fe9937af0bbc4cd/docs/devel/api-conventions.md#http-status-codes

Response Status Kind 返回结果的kind是Status类型

返回Status的两种情况

返回包体

{
  "kind": "Status",
  "apiVersion": "v1",
  "metadata": {},
  "status": "Failure",
  "message": "pods \"grafana\" not found",
  "reason": "NotFound",
  "details": {
    "name": "grafana",
    "kind": "pods"
  },
  "code": 404
}
上一篇 下一篇

猜你喜欢

热点阅读