如何使用版本1的Java REST客户端将版本1工作URL(端点)转换为java查询

时间:2016-01-07 08:36:11

标签: java rest versionone

我需要将以下工作的REST端点转换为java查询

  

/rest-1.v1/Data/Timebox?Where=Schedule.ScheduledScopes.Name=“Sample:Call Center Product”& sel = Workitems:Defect [AssetState ='Closed']。估计。@ Sum,Name ,工作项:。故事[AssetState = '关闭']估计@萨姆

我的不工作代码:

IAssetType storyType = services.getMeta().getAssetType("Timebox");
        Query query = new Query(storyType, true);
        IAttributeDefinition name = storyType.getAttributeDefinition("Name");
        IAttributeDefinition defect_estimate = storyType.getAttributeDefinition("Workitems:Defect[AssetState='Closed'].Estimate.@Sum");
        IAttributeDefinition story_estimate = storyType.getAttributeDefinition("Workitems:Story[AssetState='Closed'].Estimate.@Sum");
        query.getSelection().add(name);
        query.getSelection().add(defect_estimate);
        query.getSelection().add(story_estimate);
        //IFilterTerm activeSprint = new TokenTerm("State.Code='ACTV'");
        IFilterTerm activeSprint = new TokenTerm("Schedule.ScheduledScopes.Name='Sample: Call Center Product'");
        query.setFilter(activeSprint);        
        DefaultCategoryDataset dataset = new DefaultCategoryDataset( );
        QueryResult result = services.retrieve(query);

我得到的错误:

Exception in thread "main" com.versionone.apiclient.exceptions.MetaException: Unknown AttributeDefinition: Timebox.Workitems:Defect[AssetState='Closed'].Estimate.@Sum
at com.versionone.apiclient.MetaModel.getAttributeDefinition(MetaModel.java:119)
at com.versionone.apiclient.AssetType.getAttributeDefinition(AssetType.java:96)
at v1_rest_intig.Example1.main(Example1.java:230)

我做错了什么? 任何指导都有很大的帮助

提前致谢

1 个答案:

答案 0 :(得分:2)

您正在使用正确的属性定义,但显然,在某些版本的API中,它们会停止翻译符号,例如brakets' ['进入URL编码('%5B'表示开括号),因此产生错误信息。

请试试这个:

工作项:缺陷%5BAssetState =%27128%27%5D

用于缺陷/故事资产类型的属性定义。

让我知道这是否有效。

TIA,