知识库 : 语义模型WS服务接口使用说明

Edit Document

WS 服务 接口使用说明

 

一、基于 soap 协议的 WS

  1. W S URL: http:// 主机 : 端口 /uapws/service/uap.pubitf.ae.meta.IMetaWebService
  2. WSDL URL:

http:// 主机 : 端口 /uapws/service/uap.pubitf.ae.meta.IMetaWebService ?wsdl

  1. 各接口说明:(详细请参见 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语句完全一致。

 

Attachments:

语义模型webservice接口使用说明.docx (application/vnd.openxmlformats-officedocument.wordprocessingml.document)