创建腾讯iPaaS Mendix App 连接器
作业Ralf
2021.06.08 23:27发布于技术 - 集成与扩展
2532

此文档解释如何创建Mendix应用(REST Service)的iPaaS Connector,从而非常方便的向用户提供服务

1.png

1.  Mendix REST Service

通过以下链接下载示例工程

https://mendix-cdn-prod-1305133312.cos.ap-shanghai.myqcloud.com/iPaaS/ApiService.mpk

根据Mendix和微信小程序集成(1)文中 1.1购买Mendix服务,1.3下载Studio Pro,根据该文4.1章节将示例工程导入Studio Pro

也可参考以下链接创建自己的REST Service

https://docs.mendix.com/howto/integration/publish-rest-service

申请App正式域名,将购买Mendix服务完成时email中获取的集群IP与该域名进行绑定

2.png

 

1.1  示例工程说明

该工程提供针对 “Entity:Car”的增删改查REST APIs

5.png

6.png

并通过不同的“Role”管控API的访问权限:

“User”Role只能调用“Get /cars”方法进行车辆查询

“Admin”Role则可以调用所有API管理车辆

7.png

1.2  本地测试

1.2.1 添加“User”Role 用户

点击“Security”->“Administrator”将MxAdmin管理员的账号以及密码复制

8.png

点击“Run Locally”将App 启动后,点击“View”访问管理页面,输入上一部保存的账号密码点击“Sign in”

9.png

10.png

点击“Create User”输入账号密码后点击“Save”

11.png

1.2.2 API测试

在浏览器中输入以下网址进入API测试页面

http://localhost:8080/rest-doc/rest/carmgnservice/v1

12.png

点击右侧“Authorize”输入0.2.1章节中创建的“User”Role账号密码并点击“Authorize”

13.png

14.png

点击“GET /cars”->“Try it out”->“Execute”查看“Code”是否为200以及“Response body”是否正确

15.png

同样的步骤点击“POST /cars” ->“Try it out”->“Execute”查看“Code”以及“Response body”此时由于权限原因会出现

16.png

更换“Authorize”为1.2.1章节中获取的“MxAdmin”管理员权限

点击“Authorize”->“Logout”->输入MxAdmin账号密码

并在“body”中输入以下内容后点击“Execute”

17.png

此时的response为以下内容表示调用成功。

18.png

将以下内容输入“PUT /cars”body中,并点击“Execute”

19.png

查看“Response”可见“Color”已经更新

20.png

最后测试“DELETE /cars”,在“Name”参数中输入“BENZ”点击“Execute”

21.png

查看“Response”“Code”为204表示删除成功

22.png

1.3  Cloud 部署

在Studio Pro点击“Version Control”->“Commit”后,用腾讯云账号登陆Mendix 平台网址

https://apps.mendix.tencent-cloud.com/index.html

可看见Dashbord中的“ApiService”App

23.png

点击“ApiService”-> “Environments”->“Create package”-> “Add Environment”-> “Deploy”具体详细步骤请参见

https://docs.mendix.com/developerportal/deploy/tencent-deploy 

部署成功后请点击“Change Admin Password”修改“MxAdmin”密码

24.png

点击“App URL”->“Edit”->“Save” 将App正式域名更新

25.png

点击上方“Apply Changes”如果没点则修改不生效

26.png

点击App URL参照1.2.1章节用MxAdmin登陆创建“User”用户。参照1.2.2章节方法用POSTMAN测试各方法(path为App URL域名)

GET (可使用User或者MxAdmin)

27.png

POST(仅供MxAdmin调用)

28.png

29.png

PUT(仅供MxAdmin调用)

30.png

DELETE(仅供MxAdmin调用)

31.png

2.  开通iPaaS企业集成服务

进入腾讯云以下界面申请并开通服务

https://cloud.tencent.com/product/eis

Cloud 审核通过后界面如下:

32.png

点击立即试用进入iPaaS控制台

3.  创建iPaaS Car Management Connector

3.1     添加连接器

点击“连接器管理”-> “我的连接器”->“添加连接器”

33.png

点击“连接器所属企业”->“添加企业”输入企业名称后点击“保存”

点击“连接器所属产品”->“添加产品”输入产品名称后点击“保存”

输入连接器名称点击“确认”最终示例如下

34.png

3.2     新建连接器属性

新建以下属性

35.png

必填选项选择√

1.png

“Admin User Password”开启密码模式

36.png

3.3     新建连接器操作

创建如下操作

37.png

get-cars

38.png

点击“流程编辑”

点击“+”选择连接器“http Request”

39.png

点击连接器配置的“新建”,创建连接器配置“request-config”,请求域名为Mendix App URL,点击“保存”

40.png

http request配置如下

41.png

请求路径:

/rest/carmgnservice/v1/cars 

请求方法:GET

请求头:

def dw_process(msg):
    Username = msg.vars['properties']['User']
    Password = msg.vars['properties']['User-Password']
    Auth = Username+':'+Password
    Encode = str(base64.b64encode(Auth.encode("utf-8")), "utf-8")
    return {"Authorization" : "Basic "+ Encode} 

create-car

需要新建操作参数Car类型为entity

42.png

43.png

点击“流程编辑”

点击“+”选择连接器“http Request”

配置如下

44.png

请求路径:

/rest/carmgnservice/v1/cars 

请求方法:POST

请求头:

def dw_process(msg):
    Username = msg.vars['properties']['User']
    Password = msg.vars['properties']['User-Password']
    Auth = Username+':'+Password
    Encode = str(base64.b64encode(Auth.encode("utf-8")), "utf-8")
    return {"Authorization" : "Basic "+ Encode} 

请求体 :

def dw_process(msg):
    return msg.vars["Car"]['^value']

update-car

与 create-car 一样需要新建操作参数Car

45.png

点击“流程编辑”

点击“+”选择连接器“http Request”

配置如下

46.png

请求路径:

/rest/carmgnservice/v1/cars 

请求方法:PUT

请求头:

def dw_process(msg):
    Username = msg.vars['properties']['User']
    Password = msg.vars['properties']['User-Password']
    Auth = Username+':'+Password
    Encode = str(base64.b64encode(Auth.encode("utf-8")), "utf-8")
    return {"Authorization" : "Basic "+ Encode} 

请求体 :

def dw_process(msg):
    return msg.vars["Car"]['^value']

delete-car

需新建操作参数car-name类型为string

47.png

48.png

点击“流程编辑”

点击“+”选择连接器“http Request”

配置如下

49.png

请求路径:

/rest/carmgnservice/v1/cars 

请求方法:DELETE

请求头:

def dw_process(msg):
    Username = msg.vars['properties']['User']
    Password = msg.vars['properties']['User-Password']
    Auth = Username+':'+Password
    Encode = str(base64.b64encode(Auth.encode("utf-8")), "utf-8")
    return {"Authorization" : "Basic "+ Encode} 

请求体 :

def dw_process(msg):
    return {"Name":msg.vars["car-name"]}

3.4     预发布连接器

点击“预发布”->“确定”

50.png

51.png

4.  创建iPaaS应用来调用自定义连接器

4.1     创建项目和应用

点击“项目管理”->“添加项目”输入项目名称点击确定

52.png

53.png

点击“添加应用”输入应用名称选择空白应用点击“确定”

54.png

55.png

4.2     配置应用

点击“Trigger”选择“HTTP Listener”

56.png

新建物理配置

57.png

配置如下

58.png

HTTP Listener配置如下

59.png

点击“+”选择“Choice”

60.png

创建4个“When”

61.png

表达式内容如下:

读取车辆信息

def dw_process(msg):
    return msg.attrs["method"] == "GET"

点击When内部“+”找到并选择创建的连接器

62.png

选择“读取车辆信息”

63.png

创建连接器物理配置,将MxAdmin以及第0章节创建的“User”Role的用户账号密码填入并保存

64.png

创建车辆

def dw_process(msg):
    return msg.attrs["method"] == "POST"

点击When内部“+”找到并选择创建的连接器

65.png

选择“创建车辆”

66.png

配置如下

67.png

def dw_process(msg):
    return msg.payload

更新车辆

def dw_process(msg):
    return msg.attrs["method"] == "PUT"

点击When内部“+”找到并选择创建的连接器

68.png

选择“更新车辆”

69.png

配置如下

70.png

def dw_process(msg):
    return msg.payload

移除车辆

def dw_process(msg):
    return msg.attrs["method"] == "DELETE"

点击When内部“+”找到并选择创建的连接器

71.png

选择“移除车辆”

72.png

配置如下

73.png

def dw_process(msg):
    return msg.attrs["queryParams"]['Name']

default

选择“Raise Error”

74.png

配置如下

75.png

4.3     测试应用

点击“调试”->“应用”

76.png

77.png

点击HTTP listener点击右侧方框复制url

78.png

将url粘贴到POSTMAN进行测试步骤与0.3章节测试类似

例如查询车辆

79.png

4.4     发布connector

当测试正常通过后进入“连接器管理”点击“发布”

80.png

根据提示补充完整材料后等待审核完成上架。

81.png

MX承相、Code_Dove
点赞
收藏
手机查看
举报
2个回复
倒序看帖
仅看楼主
楼层直达
    颂文Gavin
    2021.06.09 00:28 发布
    #1

    向Ralf哥学习!

    首赞
    回复
    举报
    MX承相
    2021.06.09 07:40 发布
    #2

    👍🏻

    首赞
    回复
    举报