支持版本列表 API¶
https://blueprints.launchpad.net/congress/+spec/api-version
Congress API 应该能够列出当前支持的 API 版本。
问题描述¶
用户希望与 Congress API 交互,但没有 API 支持来查询支持的版本,因此用户不知道当前 Congress 部署中可以支持哪些版本。
提议的变更¶
导出版本列表 API,并显示当前的 API 详情,包括:id、状态、更新时间、链接,就像其他 OpenStack 项目一样:nova、neutron 等。虽然 Congress 目前仅支持一个版本 API (v1),但版本列表 API 对于未来的 API 演进是有意义的。
备选方案¶
无
策略¶
无
策略动作¶
无
数据源¶
无
数据模型影响¶
无
REST API 影响¶
方法的规范
列出当前支持的 API 版本。
方法类型:GET
正常的 http 响应代码:200
预期的错误 http 响应代码:无
/可以通过 URL 传递的参数:无
如果允许,则主体数据的 JSON schema 定义:无
如果存在,则为响应数据定义 JSON schema
{ "type": "object", "properties": { "versions": { "type": "array", "items": { "type": "object", "properties": { "status": { "type": "string" }, "updated": { "type": "string" }, "id": { "type": "string" }, "links": { "type": "array", "items": { "type": "object", "properties": { "href": { "type": "string" }, "rel": { "type": "string" } }, "additionalProperties": false, "required": ["href", "rel"] } } }, "additionalProperties": false, "required": ["status", "updated", "id", "links"] } } }, "additionalProperties": false, "required": ["versions"] }
示例用例
GET / { "versions": [{ "status": "CURRENT", "updated": "2015-07-03T11:33:21Z", "id": "v1", "links": [{ "href": "http://10.250.10.29:1789/v1/", "rel": "self" }] }] }
此更改不应影响 policy.json 文件。
安全影响¶
无
通知影响¶
无
其他最终用户影响¶
python-congressclient 中的相关工作也将被添加。
修改后,用户可以获取 API 版本详情,如下所示
openstack congress version list
性能影响¶
无
其他部署者影响¶
我们修改 api-paste.ini 以添加一些内容,因此如果操作员准备从旧版本升级,他需要将新的配置项添加到旧的 api-paste.ini 文件中,或者使用新的覆盖旧的。
开发者影响¶
无
依赖项¶
无
测试¶
应添加一些单元测试来覆盖新的 API。
文档影响¶
相关内容应添加到 Congress API 文档中。
参考资料¶
无