ApolloStudio高手之路(22):WebAPI(HTTP Server)的搭建和调用

2024-04-14 06:58

本文主要是介绍ApolloStudio高手之路(22):WebAPI(HTTP Server)的搭建和调用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        在现如今的智慧工厂项目中,对不同设备之间的通讯需求越来越多,目前较为普及的主要是WebService以及WebAPI,而且后者因其设计和部署的便利性将有逐步完全替代前者的趋势,ApolloStudio同时支持这两种通讯方式,本文将着重以WebAPI的通讯方式进行介绍。

WebAPI的搭建

        在ApolloStudio中的,WebAPI主要是以脚本函数的方式进行创建:

开启服务:设置一个本地空闲的TCP端口号,带入到函数中传参当中作启动参数。

关闭服务:当程序执行完毕时,需手动调用该函数,即可关闭端口释放资源。

绑定节点:可以设置不同的节点所对应的处理函数。

我们根据上面的介绍编写测试脚本如下:

#-*- coding: UTF-8 -*-
#加载内嵌模块
import clr,sys,time,datetime,threading#后台线程监控系统状态
def subloopthread():while AS.Func_Sys_GetSysStatus():#获取系统状态,便于安全退出time.sleep(0.5)#系统执行完毕后,执行关闭操作AS.Func_HttpServer_Close()#节点func1绑定的函数,需保留入参inputdata
def func1(inputdata):return '{"RES1":"%s"}'%inputdata#节点func2绑定的函数,需保留入参inputdata
def func2(inputdata):return '{"RES2":"%s"}'%inputdata#启动WebAPI服务器
AS.Func_HttpServer_Start(17890)
#绑定一个节点,这里举例按func1测试
AS.Func_HttpServer_BindNode("/func1", func1)
#可以绑定多个节点,这里举例按func2测试
AS.Func_HttpServer_BindNode("/func2", func2)
#启动后台监控线程
t = threading.Thread(target=subloopthread, name='SubLoopThread')
t.start()#模拟主线程循环
while True:time.sleep(0.5)

        在上面的测试脚本中,我们设置了2个节点func1和func2,这里节点的定义数量是没有限制的,可以根据实际的业务需要绑定更多的节点以完成操作。同时我们还定义了一个后台线程来监控系统是否已退出,当后台线程检测到主流程已退出时,这时就会自动销毁已开启的HTTP服务器资源 。

        WebAPI服务端默认绑定的本地地址0.0.0.0,我们这里是采用的本地测试,故使用127.0.0.1这个IP地址进行访问,对应的在Url中,地址则为http://127.0.0.1:17890,这个为基地址,后面则接上对应的节点即可访问,例如在脚本中所定义的/func1这个节点,完整的访问链接则为http://127.0.0.1:17890/func1,在下面的测试中可以注意下这一点。

        在ApolloStudio中加载完测试脚本后,即可进行调用测试,这里我们通过脚本任务项来加载测试,并未做其他的附属功能。

WebAPI服务器的测试

        这里我们可以选择PostMan、ApiPost等常用的测试工具进行标准化测试,这里我们以ApiPost测试工具为例:

        新增一个测试接口,这里填写本地URL地址:

        调用func1节点则对应的Url为:http://127.0.0.1:17890/func1

        调用func2节点则对应的Url为:http://127.0.0.1:17890/func2

        即可在下面的结果栏里看到返回的信息。这里我们是以json的格式进行双向传输,请求格式里选择为application/json,请求端带入的参数(这里我们随意定义的数值123)将会被脚本函数中的inputdata进行接收,在函数中j经过处理后,再通过return返回函数的调用结果,函数的返回结果将作为请求的响应进行反馈到请求端的获取结果处。

        到此便是简单的搭建和调用了WebAPI服务功能来进行演示,本文仅为功能的简单说明,以作抛砖引玉之效,大家可以根据自己的实际需要进行改进和应用。

    ***********************************************************************************************************************************************

ApolloStudio最新版下载地址(网盘有交流群号):

(点击跳转至首页文章,见文章最底部下载链接)

这篇关于ApolloStudio高手之路(22):WebAPI(HTTP Server)的搭建和调用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

SQL Server数据库死锁处理超详细攻略

《SQLServer数据库死锁处理超详细攻略》SQLServer作为主流数据库管理系统,在高并发场景下可能面临死锁问题,影响系统性能和稳定性,这篇文章主要给大家介绍了关于SQLServer数据库死... 目录一、引言二、查询 Sqlserver 中造成死锁的 SPID三、用内置函数查询执行信息1. sp_w

Maven 配置中的 <mirror>绕过 HTTP 阻断机制的方法

《Maven配置中的<mirror>绕过HTTP阻断机制的方法》:本文主要介绍Maven配置中的<mirror>绕过HTTP阻断机制的方法,本文给大家分享问题原因及解决方案,感兴趣的朋友一... 目录一、问题场景:升级 Maven 后构建失败二、解决方案:通过 <mirror> 配置覆盖默认行为1. 配置示

Linux中修改Apache HTTP Server(httpd)默认端口的完整指南

《Linux中修改ApacheHTTPServer(httpd)默认端口的完整指南》ApacheHTTPServer(简称httpd)是Linux系统中最常用的Web服务器之一,本文将详细介绍如何... 目录一、修改 httpd 默认端口的步骤1. 查找 httpd 配置文件路径2. 编辑配置文件3. 保存

Java调用C#动态库的三种方法详解

《Java调用C#动态库的三种方法详解》在这个多语言编程的时代,Java和C#就像两位才华横溢的舞者,各自在不同的舞台上展现着独特的魅力,然而,当它们携手合作时,又会碰撞出怎样绚丽的火花呢?今天,我们... 目录方法1:C++/CLI搭建桥梁——Java ↔ C# 的“翻译官”步骤1:创建C#类库(.NET

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

pytest+allure环境搭建+自动化实践过程

《pytest+allure环境搭建+自动化实践过程》:本文主要介绍pytest+allure环境搭建+自动化实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、pytest下载安装1.1、安装pytest1.2、检测是否安装成功二、allure下载安装2.

使用vscode搭建pywebview集成vue项目实践

《使用vscode搭建pywebview集成vue项目实践》:本文主要介绍使用vscode搭建pywebview集成vue项目实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录环境准备项目源码下载项目说明调试与生成可执行文件核心代码说明总结本节我们使用pythonpywebv

C/C++和OpenCV实现调用摄像头

《C/C++和OpenCV实现调用摄像头》本文主要介绍了C/C++和OpenCV实现调用摄像头,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录准备工作1. 打开摄像头2. 读取视频帧3. 显示视频帧4. 释放资源5. 获取和设置摄像头属性