建议使用以下浏览器,以获得最佳体验。 IE 9.0+以上版本 Chrome 31+ 谷歌浏览器 Firefox 30+ 火狐浏览器
请选择 进入手机版 | 继续访问电脑版
设置昵称

在此一键设置昵称,即可参与社区互动!

确定
我再想想
选择版块
150240hnc3spnhbuatuohj.jpg

芙泡小超人

发帖: 19粉丝: 2

级别 : 版主

发消息 + 关注

发表于2020-2-13 20:50:23 722 1
直达本楼层的链接
楼主
显示全部楼层
[信息速递] 园区基础网络类API概述及向导

# 快速开始 ## 接口概述 iMaster NCE-Campus提供了一组RESTful API,外部的应用程序可以使用HTTPS访问API接口,实现业务下发、网络管理和监控等功能。 基础网络API,主要针对网络侧的控制管理运维等,适用于MSP集成代理场景,包含基础服务、网络配置、策略服务、运维监控几大类API。 - 对于租户/MSP,支持租户、站点、设备、账号、地图等基础服务接口。 - 对于交换机或AP设备,支持端口、SSID、VLAN、射频、SNMP/LLDP、DHCP等配置接口。 - 支持接入、安全、认证账号管理等策略服务接口。 - 支持查询链路状态/事件、设备状态/事件,支持重启设备、运维ping/trace探测、恢复出厂等运维接口。 ## 登录认证 客户端向服务器下发登录认证请求,服务器返回一个Token和过期时间。 此处为模拟调测环境,已经为各位开发者创建好北向用户帐号。在调用真实环境的北向接口之前,应在iMaster NCE-Campus上创建具有Open Api Operator角色的帐号,用于获取Token。操作详情请参见[创建北向用户](#创建北向用户)。 **请求URL** 获取Token值使用如下URL: ``` https://devzone.huawei.com/cloudcampus/controller/v2/tokens ``` **Headers** 此API使用如下Headers参数进行登录认证: | Headers | 参数值 | | --------------- | ---------------- | | Content-Type | application/json | | Accept | application/json | | Accept-Language | en-US | **请求示例** 请求参数userName 和password为您的华为云帐号和密码。 ``` curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Accept-Language: en-US' -d '{"userName":"huaweiUser","password":"huaweiPassword"}' 'https://devzone.huawei.com/cloudcampus/controller/v2/tokens' ``` **登录认证成功响应** ```json { "errcode": "0", "errmsg": "get token successfully.", "data": { "expiredDate": "2020-01-08T17:10:11,887+08:00", "token_id": "aHVhd2VpcGFvZnU6SHVhd2VpMTIjJA==" } } ``` ## 下发RESTful请求 客户端携带上面的Token再下发RESTful请求给服务器。 **请求URL** 调用查询用户组API使用如下URL: ``` https://devzone.huawei.com/controller/campus/v1/accountservice/usergroups ``` **Headers** 此API使用如下Headers参数下发RESTful请求: | Headers | 参数值 | | --------------- | ---------------- | | Content-Type | application/json | | Accept | application/json | | Accept-Language | en-US | | X-ACCESS-TOKEN | {token_id} | **请求示例** X-ACCESS-TOKEN取值为已获取的Token值token_id。 ``` curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' --header 'Accept-Language: en-US' --header 'X-ACCESS-TOKEN: aHVhd2VpcGFvZnU6SHVhd2VpMTIjJA==' -d '{"parentId":" a91e1696-02a2-4a68-bad4-aa639359c8cf","name":"friendName","address":"Xihu North Community","postalCode":"125744","adminEmail":"admin%40huawei.com","description":"common user group"}' 'https://devzone.huawei.com/cloudcampus/controller/campus/v1/accountservice/usergroups' ``` **响应** ```json { "data": { "address": "Xihu North Community", "adminEmail": "admin%40huawei.com", "bsid": "", "description": "common user group", "fullPathName": "", "id": "3e7d7186-dff6-48cf-8254-61cceae00090", "name": "friendName", "orderId": 0, "parentId": "a91e1696-02a2-4a68-bad4-aa639359c8cf", "postalCode": "125744" }, "errcode": "0", "errmsg": "" } ``` # 向导 ## 创建北向用户 1. 使用华为云帐号登录[沙箱预约系统](https://devzone.huawei.com/openecosystem/physical/graphviewer?params=a5289a5c)。 2. 请参考[预约实验室](https://devzone.huawei.com/openecosystem/help/help_zh/help_zh.html#ZH-CN_TOPIC_0180973568)使用指导,完成实验室预约。 3. 进入“我的环境 > 物理实验室”,当实验室为 active 状态时,单击已预约实验室操作列表的“体验”,进入体验界面。 4. 单击iMaster NCE-Campus图标,在“属性”页签获取iMaster NCE-Campus 的IP、用户名和密码(使用此用户名和密码登录iMaster NCE-Campus,用于创建北向用户)。 ![resource.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202002/13/204559wkhmne4efen7ksfz.png) 5. 鼠标悬浮至iMaster NCE-Campus图标,单击![connector.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202002/13/204622qayclpk16yi5rs3e.png) ,可使用上面获取的用户名和密码登录到iMaster NCE-Campus。 ![networking.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202002/13/204701fw4gzef5tpwg5t8u.png) 6. 选择“系统 > 系统管理 > 管理员”,在“用户”页签中单击“创建”,创建Open Api Operator帐号。请将“首次登录修改密码”选择“否”。 ![open-api-operator.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202002/13/204727d70z7abhxdifvccn.png) 7. 两次单击“下一步”。 8. 单击“确定”。 ## REST API **约束与注意** - 接口的输入参数、请求消息体、结果消息体统一采用UTF-8编码。 - 通过PUT进行修改操作时,如果非必填字段在报文中未携带,或填为null,则此字段维持原值,不作修改。若想清空一个string字段,可以填入空字符串""。 - HTTP Header中,可以通过Accept-Language设置en-US来指定返回信息为英文,若不指定Accept-Language,则默认返回英文信息。 - 通过API创建的数据,不能在iMaster NCE-Campus界面上删除。 - 所有API的请求报文中Host端口号由18008改为18002。 - 所有API的接口使用的是北向IP。 - API接口调用会话超时时间默认设置为10分钟,若10分钟内无会话交互,则系统会自动清理会话session。 **接口规范** iMaster NCE-Campus的所有REST接口的URL地址均遵从下述规范: ``` <OP> / <service-path> / <resource> ? <query> ``` - OP:对应方法,方法包括POST、PUT、DELETE、GET。 - service-path:REST API微服务路径。 - resource:操作的资源路径。 - query:参数集。使用“name=value”对标识。 **HTTP Headers** iMaster NCE-Campus对REST接口的Headers进行了一定的限制,主要包括如下几个参数: - Content-Type:包含了文档的“mime-type”。浏览器将会依据该参数决定如何对文档进行解析。 - Accept:表示浏览器可接受的MIME类型。浏览器将会依据该参数决定接受何种参数格式。 - Accept-Language:服务器端可接受的语言类型默认为en-US。 - X-ACCESS-TOKEN:发送Token信息给服务器。 **方法说明** | 方法 | URI格式 | 功能说明 | 幂等性 | | ------ | --------------------------- | ------------------------------------------------------------ | ------ | | GET | / | 1、获取数据并且返回状态。
2、指向要检索的数据节点。 | 是 | | PUT | / | 1、更新数据并且返回状态。
2、指向要存储的数据节点。 | 是 | | POST | / | 1、创建一个节点并返回状态。
2、指向要被存储的数据节点。 | 否 | | DELETE | / | 1、删除一条数据且返回状态。
2、指向要被删除的数据。 | 否 | **状态码定义** RESTful采用HTTP状态码来报告操作结果。 | 状态码 | 描述 | | ------ | ------------------------------------------------------------ | | 2xx | 操作成功 | | 400 | 操作失败,错误的详细描述在errmsg中体现 | | 401 | 未授权,常见错误为token填错、或已超时 | | 403 | 不允许访问,常见错误为该管理员无对应权限或访问的资源不存在 | | 404 | 请求的资源不存在,常见错误为,尝试GET不存在的资源 | | 415 | 不支持请求中的报文体格式,常见错误为,未填Content-Type,或Content-Type的值不为application/json | | 500 | 服务器内部错误,常见错误为请求header中缺少必填字段 | | 503 | 服务不可用,常见错误为ddos攻击 | ## Java SDK向导 **准备工作** 如果您还没有下载Java SDK,请先点击这里[CloudCampus Java SDK JAR](http://devzone.huawei.com/apistudio/resource/downloadDocFile?type=downloadDocFile&id=3)下载我们的SDK JAR文件,SDK源码请参考[CloudCampus Java SDK Sources](http://devzone.huawei.com/apistudio/resource/downloadDocFile?type=downloadDocFile&id=4)。 注:推荐使用JDK1.8及以上版本。 **导入SDK包** 将您下载的SDK JAR包导入您的Java工程,如果您使用maven构建您的工程,使用此命令将SDK安装到您的maven本地仓: ``` mvn org.apache.maven.plugins:maven-install-plugin:3.0.0-M1:install-file -Dfile=cloudcampus-1.0.0.jar ``` 随后在您的maven工程的pom.xml文件中引入SDK依赖: ```xml <dependency> <groupId>com.huawei.cloudcampus.api</groupId> <artifactId>cloudcampus</artifactId> <version>1.0.0</version> </dependency> ``` **初始化客户端** 使用com.huawei.cloudcampus.api.ApiClient类来初始化您的SDK,您需要配置北向API使用的端口号(18002),iMaster NCE-Campus控制器的IP以及北向帐号和密码(请参考[创建北向用户](#创建北向用户)),如下所示: ```java ApiClient apiClient = new ApiClient(); apiClient.setTenantName("tenant@north.com"); apiClient.setTenantPwd("Admin@1234"); apiClient.setHost("139.9.213.72"); apiClient.setPort("18002"); ``` **SDK使用示例** 分页查询租户列表: ```java TenantServiceApi api = new TenantServiceApi(apiClient); Gson gson = new Gson(); Integer pageIndex = 0; Integer pageSize = 0; TenantListDto response = api.querySoftcomTenants(pageIndex, pageSize); String result = gson.toJson(response); ``` ## Python SDK向导 **准备工作** 如果您还没有下载Python SDK,请先点击这里[CloudCampus Python SDK Sources](https://devzone.huawei.com/apistudio/resource/downloadDocFile?type=downloadDocFile&id=10)下载我们的Python SDK源码文件。 **安装SDK** 下载完成后,解压文件。打开cmd命令行,运行如下命令进入CloudCampus Python SDK源码文件夹,例如运行如下命令: ``` cd FilesPath ``` > FilesPath为CloudCampus Python SDK源码文件夹 运行如下命令安装Python SDK: ``` pip install -r requirements.txt ``` ![python-pip.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202002/13/204811cn2tjzshwtq3efti.png) ``` python setup.py install ``` ![python-setup.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202002/13/204826lurny3mj0xjcxjl3.png) 安装完成后,运行如下命令查看SDK是否安装成功: ``` pip list ``` ![python-success.png](https://bbs-img-cbc-cn.obs.cn-north-1.myhuaweicloud.com/data/attachment/forum/202002/13/2048422rlga9cjhuk1qwoj.png) **导入SDK包** 以查询租户接口为例: 导入ApiClient、Configuration,和本次调用的api(TenantServiceApi) ```python from swagger_client.api_client import ApiClient from swagger_client.apis.tenant_service_api import TenantServiceApi from swagger_client.configuration import Configuration ``` **初始化客户端** 使用ApiClient类来初始化您的SDK,您需要配置北向API使用的端口号(18002),iMaster NCE-Campus控制器的IP以及北向帐号和密码(请参考[创建北向用户](javascript:;) ```
举报
分享

分享文章到朋友圈

分享文章到微博

芙泡小超人

发帖: 19粉丝: 2

级别 : 版主

发消息 + 关注

发表于2020-2-13 20:51:35
直达本楼层的链接
沙发
显示全部楼层
点赞 评论 引用 举报

游客

富文本
Markdown
您需要登录后才可以回帖 登录 | 立即注册