深圳模板网站建设公,站长统计网站统计,上海奉贤网站建设 列表网,网站建设心得8000字华为北向网管NCE开发教程#xff08;1#xff09;闭坑选接口协议 华为北向网管NCE开发教程#xff08;2#xff09;REST接口开发 华为北向网管NCE开发教程#xff08;3#xff09;CORBA协议开发 假设你现在要开始华为北向接口REST协议之前#xff0c;需要准备如环境
1准…华为北向网管NCE开发教程1闭坑选接口协议 华为北向网管NCE开发教程2REST接口开发 华为北向网管NCE开发教程3CORBA协议开发 假设你现在要开始华为北向接口REST协议之前需要准备如环境
1准备工作
1.1环境准备
IP: 北向网管NCE的IP地址
端口 31943 3194526335
地址
https://IP:31943 NCE管理系统
https://IP:31945 NCE运维系统
https://IP:26335 REST服务接口1.2文档准备
准备如下一系列文档以下文档不必齐全其中《用户指南》、《REST API参考》为必须有 版本说明 首先得确定你对接的网管是那个版本文档版本和NEC的版本最好保持一致不保持一致无法保证实际调用接口和接口版本一致 例如通过登录https://:31943可以在NCE管理系统系统中查看你的接口文档版本和实际的NCE系统的版本是否一致。
1.3API测试工具
测试工具就比较简单了比如postMan等接口测试工具就可以了假设如果你们的开发电脑不能直接访问北向NCE的话事实证明很多情况下确实不允许你们的开发电脑访问NCE的只要REST接口也不怕可以写一个程序部署到服务器然后服务器转发HTTP请求到NCE系统。 针对不能直接访问网管NCE的流程如下 例如我是这样做的 编写一个SpringBoot程序集成了swagger将改程序部署到服务器然后找一台能访问服务器的电脑打开我们的wagger接口测试页面。然后我们在这里组织我们请求网管NCE的参数 例如请求网管NCE的地址、请求方式、请求参数、token。 服务器接收到请求以后根据swagger提交的参数向网管NCE发起请求。
2配置工作
再次还是提一下前提条件能保证REST接口能用起来否则我建议你终止换其他接口 参考《北向REST接口 用户指南》配置REST接口。
2.1检查license
访问地址https://运维面IP地址:31943选择“系统设置”App后在主菜单中选择“系统设置 License管理”然后查看License选项中看license是否可用部分版本的NCE选择License管理管理发现只有纯文本介绍没有license相关的具体内容可以在右上角的搜索框里面搜索License那儿可以进去。具体页面的最终效果如下因为我在写这篇文章的时候我也没办法访问网管NCE了。 License 要想可用必须保证 消耗量 / 容量不能超过百分之20容量超限百分之20以后直接不能使用得加钱得加钱得加钱重要的事说三遍。
消耗量/容量 120% license将直接不能用
消耗量/容量 100% license一直可用
100% 消耗量/容量 120% license只可以在用三个月2.2配置REST接口
如图所示在这里可以看到你当前使用的这个版本的NCE在配置NCE的时候是否有哪些必须配置的 我这个版本中可以看到除了3.2以外都是非必选 备注 3.2也可以非必选在调用的时候禁用SSL认证即可。后面会说
备注 3.6需要注意某些版本在配置3.6版本时会弹框提示你需要启动某某服务则按照下面的《启动REST接口服务》操作中去启动该服务即可。
2.3启动REST接口服务
具体操作我就不多说了看指南里面操作即可。
2.3创建REST接口服务的用户
详情见操作指南3.9这一步不是必须如果已经有这样的用户了就不用创建没有的话还是需要创建
3调试工作
3.1API测试工具调试
3.1.1登录接口
通过接口文档找到登录接口在该接口中找到请求方式、请求地址、请求参数、 打开PostMan设置请求参数为PUT请求数据为Json填入请求地址填入请求参数
重点由于在配置REST的时候我们没有配置证书因此我们需要在设置中禁用SSL证书验证
由于楼主写文章的时候我已经离开机房或者客户现场了总之就是我现在没办法访问网管NCE了只能给你们以前我访问拿到的一些数据了例如这是我之前调试拿到的返回报文。
{accessSession: x-lc1gjug9lglijvvv7tvsip3whhsbka0anzoapg7yhi04apc76l9cg6tgft7z1d9darpeqp2qhdo9qn89sbfzanqpurbxqlhdmp89irc9tdjsliqmakqkrxo8hc2oelc5,roaRand: ae136e1468ea024e3a61731c99947f5ea27e7d13005d6579,expires: 1800,additionalInfo: null
}通过登录接口我们就可以拿到token信息了
3.1.2查询所有机房
找到我们需要的接口找到请求参数请求地址请求方式等 按照接口填写地址请求方式然后把上面我们的登录接口中获取到accessSession复制下来在postMan的headers中添加X-Auth-Token即可发起请求
3.2代码调试
当我们使用代码调试无法直接用postMan访问网管NCE或者开始开始编写代码访问NCE采集数据的时候其实就是我们用代码模拟postMan请求。
3.2.1登录接口
登录太简单了就不说了。直接看代码
Data
public class LoginReq {private String url;private String grantType;private String userName;private String value;
}Data
public class LoginRes {private String accessSession;//: x-yyyyyyy,private String roaRand;//: xxxxxxx,private int expires;//: 1800,
}public String loginNce() {ResponseEntityLoginRes res restTemplate.postForEntity(loginReq.getUrl(), loginReq, LoginRes.class);return res.getBody().getAccessSession();
}3.2.2查询所有机房
除登录以外的接口就稍微复杂点因为在postman测试的时候我们添加了X-Auth-Token并且禁用了SSL证书因此我们用代码请求的时候也需要这样做
如下这个代码是我用来调试网管NCE接口在部署服务器上转发的代码主要是把wagger传过来的token地址url请求方式请求地址拿过来构建一个http请求。你可以理解为我在服务器上构建了一个类似postman的功能然后我把参数给服务器服务器给我发起请求到网管NCE
Data
public class ReqTest {NotEmptyApiModelProperty(请求方式)private String method;NotEmptyApiModelProperty(请求地址)private String url;private String token;ApiModelProperty(请求参数)private MapString, Object body;
}public Object restHuaweiNce(ReqTest req) {HttpHeaders headers new HttpHeaders();headers.add(X-Auth-Token, req.getToken());headers.setContentType(MediaType.APPLICATION_JSON);HttpEntityObject reqEntity new HttpEntity(req.getBody(), headers);HttpMethod method HttpMethod.resolve(req.getMethod().toUpperCase());ResponseEntityObject res restTemplate.exchange(req.getUrl(), method, reqEntity, Object.class);return res.getBody();
}如果你能直接连网管NCE或者正式开发就不需要我这么麻烦了直接用put、get、post即可不过你也需求像上面一样在headers 里面添加X-Auth-Token
restTemplate.put(null, req);
restTemplate.getForEntity(null, null);
restTemplate.postForEntity(null, req, null);到这里还不够因为我们还没有禁用SSL
/*** description:Rest配置* author:hutao* date:2022年3月5日*/
SpringBootConfiguration
public class RestTemplateConfig {/*Beanpublic RestTemplate restTemplate() {SimpleClientHttpRequestFactory factory new SimpleClientHttpRequestFactory();factory.setConnectTimeout(10000);factory.setReadTimeout(10000);return new RestTemplate(factory);}*//*** description:关闭SLL验证* author:hutao* date:2024年2月29日 下午3:46:19*/Beanpublic RestTemplate restTemplate() throws KeyStoreException, NoSuchAlgorithmException, KeyManagementException {TrustStrategy acceptingTrustStrategy (X509Certificate[] chain, String authType) - true;SSLContext sslContext org.apache.http.ssl.SSLContexts.custom().loadTrustMaterial(null, acceptingTrustStrategy).build();SSLConnectionSocketFactory csf new SSLConnectionSocketFactory(sslContext);CloseableHttpClient httpClient HttpClients.custom().setSSLSocketFactory(csf).build();HttpComponentsClientHttpRequestFactory factory new HttpComponentsClientHttpRequestFactory();factory.setHttpClient(httpClient);factory.setConnectTimeout(10000);factory.setReadTimeout(10000);RestTemplate restTemplate new RestTemplate(factory);return restTemplate;}
}至此华为北向网管NCE REST接口开发就到这里了剩下的具体要调用哪个接口我就没招了毕竟那么多个接口我也不能挨个调用只能选一两个示例了。后面我还会讲CORBA那个会超级恶心。