WS 服务 接口使用说明
一、基于 soap 协议的 WS
- W S URL: http:// 主机 : 端口 /uapws/service/uap.pubitf.ae.meta.IMetaWebService
- WSDL URL:
http:// 主机 : 端口 /uapws/service/uap.pubitf.ae.meta.IMetaWebService ?wsdl
- 各接口说明:(详细请参见 JavaDoc 文档)
1 ) MetaElement[] loadSubElements(String metaId) throws Exception;
方法描述: 根据传入的 元数据 id ,即 metaid ,加载 该元数据的直接 子项。
入参: 元数据 id ,格式为 metatype^businessid 。
返回值: 返回该元数据的直接子节点元素数组。
举例: 传入语义模型根节点 metaid : smartdir^smartmodelrootid ,可以加载所有
语义模型分类,在根据各分类的 metaid ,即可加载该分类下的语义模型
定义。
2 ) MetaField[] loadFields(String metaId) throws Exception;
方法描述:根据传入的元数据 id ,即 metaid ,加载该元数据的字段属性数组。
入参: 元数据 id ,格式为 metatype^businessid 。
返回值: 返回该元数据的字段属性数组。
举例: 传入语义模型定义的 metaid ,即可返回该语义模型中的字段数组。语义
模型定义的 metaid 格式为: SmartModel^defpk 。
3 ) ResultData provideData (DataRequest request) throws Exception;
方法描述:根据传入的查询请求对象,返回查询结果数据。
入参: 查询请求对象,该对象,必须设置一个元数据 id ,即 metaid 。可选择设
置查询字段列表,过滤表达式,排序表达式,最大行,执行上下文等信
息。
返回值: 返回查询结果数据对象。该对象包含一个结果字段数组,和结果数据数
组。
举例: 如查询语义模型中的某几个字段,需在 DataRequest 中设置语义模型
metaid ,要查询的字段列表,字段名 A, 字段名 B, 字段名 C …… ,字段间
用“ , ”隔开。如果不设置查询字段列表,默认查询所有字段。也可以
设置过滤表达式,排序表达式,最大行,执行上下文等信息。其中,执
行上下文中可以包含语义模型需要用的的参数和宏变量等信息,参数和
宏变量有格式要求。使用键值对的形式,每组之间用“ ; ”隔开,例如
param1=value1;param2=value2; 宏变量类似。返回的查询结果中,包含
一个查询字段的数组,还有一个查询结果数据的数组,可供后续展现使
用。
二、基于 json 的 WS
1. 支持 Rest 服务
现在同时支持 soap 与 rest 两种方案。
URI :
AE 这边提供的服务更多是面向功能,不是面向资源,所以 URI 还是传统的 action 格式:
http:// 主机 : 端口 /aemeta/metawebservice?action=XXX
请求参数:
action
即方法名,方法的入参推荐使用
post
方式。(请求参数区分大小写,与方法签名一致,请注意)。
返回值:
一般以
Json
格式返回(状态探查直接返回文本
“OK”
)。格式如下:
{
"status":
状态码
, 0
表示成功,
1
表示有异常。
"error":
异常信息 ,成功执行时没有该项,
status=1
时通过该项取得异常信息。
"result":
真正的返回结果
}
2. 状态探查
直接请求 http:// 主机 : 端口 /aemeta/metawebservice ,服务正常时返回文本 “OK” ,(不是 Json 格式)。
3.复杂查询
多模型关联、计算字段、过滤、排序等,统一由新接口支持:
/**
* 执行sql脚本,获取二维数据结果集
* @param script
select语句
* @throws Exception
*/
public ResultData
provideDataByScript
(String script) throws Exception;
原接口ResultData provideData(DataRequest request)可以继续使用,但只能支持单个语义模型执行,建议统一使用上述sql执行接口。
关于新接口的入参:
现在是采用sql作为入参。如果不使用sql,则需要把类似语义模型这样的查询模型整个传过来,构造这样一个复杂的查询模型比拼接sql语句要复杂的多,所以这边采用sql作为入参,并且这样也能和你们其他类型的数据集保持一致。
注意:sql语句中语义模型使用 meta('模型Guid') 函数表示,其他和select语句完全一致。