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

相关文章

5分钟获取deepseek api并搭建简易问答应用

《5分钟获取deepseekapi并搭建简易问答应用》本文主要介绍了5分钟获取deepseekapi并搭建简易问答应用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需... 目录1、获取api2、获取base_url和chat_model3、配置模型参数方法一:终端中临时将加

SQL Server使用SELECT INTO实现表备份的代码示例

《SQLServer使用SELECTINTO实现表备份的代码示例》在数据库管理过程中,有时我们需要对表进行备份,以防数据丢失或修改错误,在SQLServer中,可以使用SELECTINT... 在数据库管理过程中,有时我们需要对表进行备份,以防数据丢失或修改错误。在 SQL Server 中,可以使用 SE

Python调用另一个py文件并传递参数常见的方法及其应用场景

《Python调用另一个py文件并传递参数常见的方法及其应用场景》:本文主要介绍在Python中调用另一个py文件并传递参数的几种常见方法,包括使用import语句、exec函数、subproce... 目录前言1. 使用import语句1.1 基本用法1.2 导入特定函数1.3 处理文件路径2. 使用ex

Window Server创建2台服务器的故障转移群集的图文教程

《WindowServer创建2台服务器的故障转移群集的图文教程》本文主要介绍了在WindowsServer系统上创建一个包含两台成员服务器的故障转移群集,文中通过图文示例介绍的非常详细,对大家的... 目录一、 准备条件二、在ServerB安装故障转移群集三、在ServerC安装故障转移群集,操作与Ser

详解Java如何向http/https接口发出请求

《详解Java如何向http/https接口发出请求》这篇文章主要为大家详细介绍了Java如何实现向http/https接口发出请求,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 用Java发送web请求所用到的包都在java.net下,在具体使用时可以用如下代码,你可以把它封装成一

Idea调用WebService的关键步骤和注意事项

《Idea调用WebService的关键步骤和注意事项》:本文主要介绍如何在Idea中调用WebService,包括理解WebService的基本概念、获取WSDL文件、阅读和理解WSDL文件、选... 目录前言一、理解WebService的基本概念二、获取WSDL文件三、阅读和理解WSDL文件四、选择对接

Java调用Python代码的几种方法小结

《Java调用Python代码的几种方法小结》Python语言有丰富的系统管理、数据处理、统计类软件包,因此从java应用中调用Python代码的需求很常见、实用,本文介绍几种方法从java调用Pyt... 目录引言Java core使用ProcessBuilder使用Java脚本引擎总结引言python

Mycat搭建分库分表方式

《Mycat搭建分库分表方式》文章介绍了如何使用分库分表架构来解决单表数据量过大带来的性能和存储容量限制的问题,通过在一对主从复制节点上配置数据源,并使用分片算法将数据分配到不同的数据库表中,可以有效... 目录分库分表解决的问题分库分表架构添加数据验证结果 总结分库分表解决的问题单表数据量过大带来的性能

Java汇编源码如何查看环境搭建

《Java汇编源码如何查看环境搭建》:本文主要介绍如何在IntelliJIDEA开发环境中搭建字节码和汇编环境,以便更好地进行代码调优和JVM学习,首先,介绍了如何配置IntelliJIDEA以方... 目录一、简介二、在IDEA开发环境中搭建汇编环境2.1 在IDEA中搭建字节码查看环境2.1.1 搭建步

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一