Neutron/API/WADL
< Neutron
目录
Quantum API WADL 规范
资源
范围
为 Quantum 核心 API 和 API 扩展提供 WADL 文档。
WADL 文档范围
- 核心 API 将拥有一个 WADL 文档
- 所有扩展 API 将拥有其自身的 WADL 文档
- 每个 WADL 文档将包含一个 application 组件
- 一个 application 组件将包含一个 resources 组件
- 一个 resources 组件将包含针对每个资源实体的 resource 组件
- 例如:network、subnet、port 等。
- 每个 resource 组件将包含用于 GET(列表、显示)、POST(创建、批量创建)、PUT(更新)和 DELETE(删除)的 method 组件。
- 每个 method 组件将包含一个 request 组件和一个可选的 response 组件
- 一个 request 或 response 组件将包含基于 API 的属性资源映射的 param 组件组成的 representation 组件
用例
这些用例是从 W3 WADL 规范中借鉴的。
- 应用建模和可视化
- 支持开发资源建模工具,用于资源关系和编排分析和操作。
- 代码生成
- 自动生成存根和骨架代码以及用于操作资源表示形式的代码。
- 配置
- 使用便携式格式配置客户端和服务器。
实现概述
编写一个 python 脚本 quantum/tools/wadl/generate_docs.sh 和 quantum/tools/wadl/extract_attrs.py
- 处理核心 API
- 从 quantum.api.v2.attributes 中检索 RESOURCE_ATTR_MAP
- 基于 RESOURCE_ATTR_MAP 字典创建文档 quantum/doc/wadl/core.wadl。
- 处理 API 扩展
- 遍历 quantum/quantum/extension 中的模块,并找到每个模块中所有 ExtensionDescriptor 的子类。
- 从 ExtensionDescriptior 的 get_resources() 方法返回的每个 ResourceExtension 对象中检索 attr_map 属性。
- 自动生成 WADL 文档文件
- quantum/doc/wadl/[extention].wadl
- 所有数据都将根据每个 API 扩展模块的 attr_map 填充
数据模型变更
不适用
配置变量
不适用
API
不适用
插件接口
不适用
必需的插件支持
不适用
依赖项
无
CLI 要求
不适用
Horizon 要求
不适用
使用示例
在更改核心 API 或 API 扩展规范的源代码后,开发人员将运行 ./tools/wadl/generate_docs.sh 以更新 quantum/doc/wadl/ 中的 WADL 文档
测试用例
目前没有计划进行测试用例。但是,需要事先检查所有 API 扩展是否都继承自 quantum.extension.ExtensionDescriptor。