最近公司要开发一个下载图纸的U9轻量级接口,轻量级接口就是restful api,可以直接通过get、post等方式调用,参数的传送和结果的返回都使用JSON格式,用起来比Webservice接口爽多了。
如果是开发新的接口,我建议都用轻量级接口的方式来开发,具体的开发过程如下。
1、打开UBFSudio,新建一个解决方案,勾选轻量服务项目,填写好项目名称,点确定按钮。
2、删除自带的ubfsvr文件:
3、点击属性按钮,修改名称:
4、新建业务组件
右键项目–新建,选择业务操作组件,填写组件名称,点确定按钮:
5、选择模型视图,双击项目,打开操作页面:
6、拖动服务按钮到窗体:
7、点击操作实体,点击属性按钮,修改名称:
8、修改返回类型(按需修改),事务类型为required,是否ISV(新ISV)为True:
9、添加接口的参数:
根据项目的实际情况添加接口所需的参数。
我们这个接口的请求参数如下:
json格式如下:
{
"context": {
"CultureName": "zh-CN",
"EntCode": "007",
"OrgCode": "101",
"UserCode": "admin"
},
"type": "Image_MoList",
"requestInfo": [
{
"DocNo": "123"
},
{
"DocNo": "456"
}
]
}
其中context参数是接口内置的,默认就有,不用管。
"context": {
"CultureName": "zh-CN",
"EntCode": "007",
"OrgCode": "101",
"UserCode": "admin"
}
我们只需要把type和requestInfo参数设置好就行。
上面建立的这个RequestDTO对象其中包含了一个docNo字段,就是requestInfo参数的内容,我们再把Type和IsFormal(文档里没写)字段加上。
注意:RequestInfo字段要引用上面的RequestDTO对象,因为requestInfo是个List,所以要选择集合。
接口的参数按具体的需求设置,接口需要什么参数就设置什么参数。
10、新增返回结果对象
服务的返回结果,也是按需填写,我们看下接口文档:
json格式如下:
{
"d":
{
"ErrMsg": "\\U9\\RYKF\\PrintListPDF\\admin\\123.pdf",
"IsSuccess": true,
"FilePath":"\\U9\\RYKF\\PrintListPDF_ISV\\admin\\123.pdf"
}
}
拖动数据传输对象到窗体,然后修改名称:
添加返回结果对象的属性,需要返回什么字段就填什么:
11、绑定返回结果对象:
把服务的返回类型改成我们刚才添加的返回结果对象:
12、构造代码
右键项目点击构造:
在消息列表中可以看到生成代码的路径:
13、编写代码
找到项目所在的路径,打开项目,把业务代码写到这里:
具体代码我就省略了。
14、代码写好后编译整个项目,复制dll到对应目录下
双击项目目录下的AutoBuild.bat文件即可:
如果复制失败,就鼠标右键编辑,打开bat文件,按照路径手动复制一下:
不知道为什么,我都没复制成功,只能手动复制一下了。
注意svc文件不要复制漏了:
15、测试接口
在浏览器中打开 http://localhost/U9/restservices/GetDrawing.IGetDrawingService.svc
可以看到wsdl的返回,说明接口可以找到了。
再用postman测试一下,虽然结果返回错误信息,但是说明接口是调通了。
16、制作补丁发布
接口测试好之后就可以制作补丁发布了,具体的过程可以参考这篇文章:U9二次开发之补丁制作
最后
这就是U9轻量服务项目开发的整个过程,步骤比较多,网上u9二开的资料也比较少,仅仅做个记录,以备查看。