华为乾坤-URL规则
URL规则
开放可编程接口中各业务模块的URL支持拼接,手册中仅给出常用的URL,其他URL可通过如下规则进行拼接:
请求格式:
推荐使用/restconf/v2前缀的接口:
/restconf/v2/data/huawei-ac-nes-device:nes/ne/[neId]/{moduleName}/{xxx}
不推荐使用/restconf/v1前缀的接口:
/restconf/v1/data/huawei-ac-nes-device:nes/ne/[neId]/{moduleName}/{xxx}
/restconf/v2和/restconf/v1接口前缀的区别:
请求类型 |
/restconf/v2 |
/restconf/v1 |
---|---|---|
GET |
支持:查询指定对象的接口 |
支持:查询指定对象的接口 |
POST |
支持:创建接口,如果对象已经存在,创建失败 |
支持:创建接口,如果对象已经存在,创建失败 |
PUT |
支持:全量更新接口,字段不传会被删除 |
支持:增量更新接口,字段不传不会被删除 |
DELETE |
支持:删除接口,删除指定对象,如果对象不存在,返回数据不存在 |
支持:删除接口,删除指定对象,如果对象不存在,返回数据不存在 |
PATCH |
支持:增量更新接口,字段不传不会被删除 |
不支持 |
- neId:设备id
- moduleName:模块名称,各业务模块的模块名请参考各章节
- xxx:取值说明如下:
- 不填写,对整个模块进行操作。
- API手册中,标识为必填的字段,使用字段值进行拼接;没有标识为必填的字段,使用字段名拼接。
- {xxx}可以支持16个层级,即:
/restconf/v2/data/huawei-ac-nes-device:nes/ne/[neId]/{moduleName}/{xxx}
/restconf/v2/data/huawei-ac-nes-device:nes/ne/[neId]/{moduleName}/{xxx}/{xxx}
/restconf/v2/data/huawei-ac-nes-device:nes/ne/[neId]/{moduleName}/{xxx}/{xxx}/{xxx}
…
/restconf/v2/data/huawei-ac-nes-device:nes/ne/[neId]/{moduleName}/{xxx}/{xxx}/{xxx}/{xxx}/{xxx}/{xxx}/{xxx}/{xxx}/{xxx}/{xxx}/{xxx}/{xxx}/{xxx}/{xxx}/{xxx}/{xxx}
示例:以route-policy为例,假设route-policy的数据如下:
{ "huawei-nce-e-route-policy:route-policy": [ { "name": "policy1", "nodes": [ { "sequence": 1, "match-mode": "permit", "condition": { "community-filter": [ { "community-filter-name": "communityFilterName1" } ], "ext-community-filter": [ { "ext-community-filter-name": "extCommunityFilterName1" } ] } } ] } ] }
- 不填写{xxx}。
URL为:/restconf/v2/data/huawei-ac-nes-device:nes/ne/{id}/huawei-nce-e-route-policy:route-policy,其中PUT的请求体可参考GET的返回结果,“huawei-nce-e-route-policy:route-policy”为数组,可包含多个元素,示例如下:
{ "huawei-nce-e-route-policy:huawei-nce-e-route-policy:route-policy": [ { "name": "policy1", "nodes": [ { "sequence": 1, "match-mode": "permit", "condition": { "community-filter": [ { "community-filter-name": "communityFilterName1" } ], "ext-community-filter": [ { "ext-community-filter-name": "extCommunityFilterName1" } ] } } } ] },{ "name": "policy2", "nodes": [ { "sequence": 1, "match-mode": "permit", "condition": { "community-filter": [ { "community-filter-name": "communityFilterName1" } ], "ext-community-filter": [ { "ext-community-filter-name": "extCommunityFilterName1" } ] } } } ] } ] }
- 假设文档中已说明参数名称为“name”,对应参数说明为“必填字段”
拼接时使用name的值拼接,URL为:/restconf/v2/data/huawei-ac-nes-device:nes/ne/[neId]/huawei-nce-e-route-policy:route-policy/policy1,其中PUT的请求体可参GET的返回结果,“huawei-nce-e-route-policy:route-policy”为数组,但仅能包含“name”为“policy1”的一个元素,示例如下:
{ "huawei-nce-e-route-policy:huawei-nce-e-route-policy:route-policy": [ { "name": "policy1", "nodes": [ { "sequence": 1, "match-mode": "permit", "condition": { "community-filter": [ { "community-filter-name": "communityFilterName1" } ], "ext-community-filter": [ { "ext-community-filter-name": "extCommunityFilterName1" } ] } } ] } ] }
- 假设文档中已说明参数名称为“nodes”对应的参数说明非“必填字段”,拼接时使用字段名nodes拼接,URL为:/restconf/v2/data/huawei-ac-nes-device:nes/ne/[neId]/huawei-nce-e-route-policy:route-policy/policy1/nodes,其中PUT的请求体可参GET的返回结果,“huawei-nce-e-route-policy:nodes”为数组,可包含多个元素,示例如下:
{ "huawei-nce-e-route-policy:nodes": [ { "sequence": 1, "match-mode": "permit", "condition": { "community-filter": [ { "community-filter-name": "communityFilterName1" } ], "ext-community-filter": [ { "ext-community-filter-name": "extCommunityFilterName1" } ] } }, { "sequence": 2, "match-mode": "permit", "condition": { "community-filter": [ { "community-filter-name": "communityFilterName1" } ], "ext-community-filter": [ { "ext-community-filter-name": "extCommunityFilterName1" } ] } } ] }
- 假设文档中已说明参数名称为“sequence”,对应的参数说明为“必填参数”。
拼接时使用“sequence”的值拼接,URL为:/restconf/v2/data/huawei-ac-nes-device:nes/ne/[neId]/huawei-nce-e-route-policy:route-policy/policy1/nodes/1,其中PUT的请求体可参GET的返回结果,“huawei-nce-e-route-policy:nodes”为数组,但仅能包含“sequence”为1的一个元素:
{ "huawei-nce-e-route-policy:nodes": [ { "sequence": 1, "match-mode": "permit", "condition": { "community-filter": [ { "community-filter-name": "communityFilterName1" } ], "ext-community-filter": [ { "ext-community-filter-name": "extCommunityFilterName1" } ] } } ] }
- 假设文档中已说明参数名称为“match-mode”,参数说明不是“必填字段”。
拼接时使用字段名“match-mode”拼接,URL为:/restconf/v2/data/huawei-ac-nes-device:nes/ne/[neId]/huawei-nce-e-route-policy:route-policy/policy1/nodes/1/match-mode,其中PUT的请求体可参GET的返回结果为:
{ "huawei-nce-e-route-policy:match-mode": "permit" }