找回密码
 立即注册

QQ登录

只需一步,快速开始

Jack.Cheng
超级版主   /  发表于:2022-6-30 17:01  /   查看:2629  /  回复:0
本帖最后由 Jack.Cheng 于 2022-6-30 17:01 编辑

一般来讲,后端对外提供的Web Service多以RESTful的HTTP API形式呈现,传统代码开发过程中,调用HTTP接口有这么几种场景:
前端页面以JS代码编写,使用ajax方式异步调用;
如果是爬虫代码,用http请求库调用;
如果用unix-like系统,比如Linux或者Mac OS,那么可以用cURL工具在terminal中进行调用;
如果对数据库用的深入,存储过程或者触发器里面,可以用SQL向Web Service发起请求;

那么,活字格里面调用外部HTTP API,使用起来有哪些需要留意的点呢?本文就说下自己的一些感受吧!

1、调用HTTP API的时序图

image.png886522216.png
时序图是UML的一种图示,关于具体的规范和画法,可以百度找一找,网络资源很多。
如果希望对UML有一个比较直观的了解,可以看看这个文章(https://mp.weixin.qq.com/s/EBqtDjx-OZamaJ284VvbSA),讲的还不错。
图示里面,后端是“一坨儿”,属于传统的单体架构、巨石系统(Monolithic Application)。现在互联网应用一般采用微服务居多,后端通过多个微小服务,组合起来,对外提供服务。后端服务直接还存在互相调用。

此图中没有体现出来。关于微服务相关内容,大家可以自行了解下。

2、HTTP请求方法
HTTP请求共8种方法,分别是GET POST HEAD OPTIONS PUT DELETE TRACE CONNECT,每种方法有其特定的语义,具体可以看看这个blog(https://blog.csdn.net/m0_48729489/article/details/122869464)。最常用的是GET和POST。

HTTP请求除了请求方法外,还会携带接口需要的其他信息,可以以URL参数或者请求体方式传递到后端接口。
简单理解,URL参数就是URL里面?后面携带的内容
image.png42659605.png
用&分割,参数以key-value形式书写。
请求体直接看不到,一般以Json形式描述。如果你打开浏览器调试工具,可以看到那些内容
image.png46708067.png

Excel里面,拼接字符串用&。因为活字格对EXCEL优秀功能支持度很高,依然可以这么用来构造URL,举个例子
="https://qyapi.weixin.qq.com/cgi-bin/appchat/create?access_token="&AccessToken

请求体的话,活字格因为有一个发送HTTP请求插件,可以在这个插件里面进行可视化设置
image.png166228331.png
该插件的详细介绍里面,有个公开课,可以针对性学习
https://marketplace.grapecity.com.cn/ApplicationDetails?productID=SP2104270003&productDetailID=D2205200024&tabName=Tabs_detail


3、序列化与反序列化
JSON和对象是两个不同的东西。
JSON是一种数据交换格式,有一套自己的描述规范和体系。目前前后端之间交互数据多用JSON这种格式。


对象是一种内存中的结构,有数据,有行为。
如果我们把一个对象变成JSON,叫做序列化;如果把JSON变成对象,叫做反序列化。

活字格中进行这两个操作,需要一个JSON序列化/反序列化命令插件(https://marketplace.grapecity.co ... tabName=Tabs_detail

4、业务操作
服务端命令里面可以进行非常复杂的业务操作,而且还很灵活。比如把调用的HTTP接口,一般他们返回的数据格式就是json分,那么我们对返回的json进行反序列化拿到列表,循环列表,经过可能的数据处理,最后逐行写入数据库。

处理末尾,返回前端需要的数据就是一种常见的业务逻辑操作。
image.png82600401.png image.png185171507.png
之前有格友问到,返回命令要不要装插件?


其实这是设计器自带的功能,可以看看这个(https://help.grapecity.com.cn/pages/viewpage.action?pageId=56530608






0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部