华为北向网管NCE开发教程(2)REST接口开发

2024-03-09 03:04

本文主要是介绍华为北向网管NCE开发教程(2)REST接口开发,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

华为北向网管NCE开发教程(1)闭坑选接口协议
华为北向网管NCE开发教程(2)REST接口开发
华为北向网管NCE开发教程(3)CORBA协议开发
假设你现在要开始华为北向接口REST协议之前,需要准备如环境

1准备工作

1.1环境准备

IP:		北向网管NCEIP地址
端口:	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

  1. 访问地址:https://运维面IP地址:31943
  2. 选择“系统设置”App后,在主菜单中选择“系统设置 > License管理”
  3. 然后查看License选项中,看license是否可用
  4. 部分版本的NCE,选择License管理管理,发现只有纯文本介绍,没有license相关的具体内容,可以在右上角的搜索框里面搜索License,那儿可以进去。
  5. 具体页面的最终效果如下,因为我在写这篇文章的时候,我也没办法访问网管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() {ResponseEntity<LoginRes> 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 {@NotEmpty@ApiModelProperty("请求方式")private String method;@NotEmpty@ApiModelProperty("请求地址")private String url;private String token;@ApiModelProperty("请求参数")private Map<String, Object> body;
}
public Object restHuaweiNce(ReqTest req) {HttpHeaders headers = new HttpHeaders();headers.add("X-Auth-Token", req.getToken());headers.setContentType(MediaType.APPLICATION_JSON);HttpEntity<Object> reqEntity = new HttpEntity<>(req.getBody(), headers);HttpMethod method = HttpMethod.resolve(req.getMethod().toUpperCase());ResponseEntity<Object> 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,那个会超级恶心。

这篇关于华为北向网管NCE开发教程(2)REST接口开发的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/789368

相关文章

springboot使用Scheduling实现动态增删启停定时任务教程

《springboot使用Scheduling实现动态增删启停定时任务教程》:本文主要介绍springboot使用Scheduling实现动态增删启停定时任务教程,具有很好的参考价值,希望对大家有... 目录1、配置定时任务需要的线程池2、创建ScheduledFuture的包装类3、注册定时任务,增加、删

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

如何为Yarn配置国内源的详细教程

《如何为Yarn配置国内源的详细教程》在使用Yarn进行项目开发时,由于网络原因,直接使用官方源可能会导致下载速度慢或连接失败,配置国内源可以显著提高包的下载速度和稳定性,本文将详细介绍如何为Yarn... 目录一、查询当前使用的镜像源二、设置国内源1. 设置为淘宝镜像源2. 设置为其他国内源三、还原为官方

usb接口驱动异常问题常用解决方案

《usb接口驱动异常问题常用解决方案》当遇到USB接口驱动异常时,可以通过多种方法来解决,其中主要就包括重装USB控制器、禁用USB选择性暂停设置、更新或安装新的主板驱动等... usb接口驱动异常怎么办,USB接口驱动异常是常见问题,通常由驱动损坏、系统更新冲突、硬件故障或电源管理设置导致。以下是常用解决

Maven的使用和配置国内源的保姆级教程

《Maven的使用和配置国内源的保姆级教程》Maven是⼀个项目管理工具,基于POM(ProjectObjectModel,项目对象模型)的概念,Maven可以通过一小段描述信息来管理项目的构建,报告... 目录1. 什么是Maven?2.创建⼀个Maven项目3.Maven 核心功能4.使用Maven H

IDEA自动生成注释模板的配置教程

《IDEA自动生成注释模板的配置教程》本文介绍了如何在IntelliJIDEA中配置类和方法的注释模板,包括自动生成项目名称、包名、日期和时间等内容,以及如何定制参数和返回值的注释格式,需要的朋友可以... 目录项目场景配置方法类注释模板定义类开头的注释步骤类注释效果方法注释模板定义方法开头的注释步骤方法注

售价599元起! 华为路由器X1/Pro发布 配置与区别一览

《售价599元起!华为路由器X1/Pro发布配置与区别一览》华为路由器X1/Pro发布,有朋友留言问华为路由X1和X1Pro怎么选择,关于这个问题,本期图文将对这二款路由器做了期参数对比,大家看... 华为路由 X1 系列已经正式发布并开启预售,将在 4 月 25 日 10:08 正式开售,两款产品分别为华

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

Python虚拟环境终极(含PyCharm的使用教程)

《Python虚拟环境终极(含PyCharm的使用教程)》:本文主要介绍Python虚拟环境终极(含PyCharm的使用教程),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录一、为什么需要虚拟环境?二、虚拟环境创建方式对比三、命令行创建虚拟环境(venv)3.1 基础命令3

使用Node.js制作图片上传服务的详细教程

《使用Node.js制作图片上传服务的详细教程》在现代Web应用开发中,图片上传是一项常见且重要的功能,借助Node.js强大的生态系统,我们可以轻松搭建高效的图片上传服务,本文将深入探讨如何使用No... 目录准备工作搭建 Express 服务器配置 multer 进行图片上传处理图片上传请求完整代码示例