RESTAPI和导航属性的Breeze URL生成

RESTAPI和导航属性的Breeze URL生成,breeze,Breeze,我一直在尝试将breeze与第三方RESTful API结合使用——该API需要两种类型的参数——对于单个实体(即id=5的请求)的深度链接,如localhost/request/5,以及使用URL中编码的JSON的参数化查询(由breeze转换,没有问题) 主要问题是让breeze使用URL创建请求,例如: localhost/request/{id} 使用breeze查询“with parameters({workorderid:id})”时,非JSON编码的GET 问题的第二部分是使用如下

我一直在尝试将breeze与第三方RESTful API结合使用——该API需要两种类型的参数——对于单个实体(即id=5的请求)的深度链接,如localhost/request/5,以及使用URL中编码的JSON的参数化查询(由breeze转换,没有问题)

主要问题是让breeze使用URL创建请求,例如: localhost/request/{id}

使用breeze查询“with parameters({workorderid:id})”时,非JSON编码的GET

问题的第二部分是使用如下语法:

var query=breeze.EntityQuery
.from('请求')
.带参数(参数)
.expand('requestDetails');
查询两个实体——main-request和secondary-requestDetails(使用defered-on-access查询辅助对象的值)

结果应如下图所示:

我的模型由两个实体手动定义:

metadataStore.addEntityType({
短名:“请求”,
命名空间:“servicedesk”,
数据属性:{
工作区:{
数据类型:DT.Identity,
isPartOfKey:对
},
忽略请求:{
数据类型:DT.Boolean
}
},
导航属性:{
申请详情:{
entityTypeName:“请求详细信息:#servicedesk”,
伊斯卡拉尔:是的,
associationName:“请求\请求详细信息”,
ForeignKeyName:[“workorderid”]
}
}
});
metadataStore.addEntityType({
shortName:“请求详细信息”,
命名空间:“servicedesk”,
数据属性:{
工作区:{
数据类型:DT.Identity,
isPartOfKey:对
},
组:{
数据类型:DT.String
},
说明:{
数据类型:DT.String
}
},
导航属性:{
请求:{
entityTypeName:“请求:#服务台”,
伊斯卡拉尔:是的,
associationName:“请求详细信息\请求”,
ForeignKeyName:[“workorderid”]
}

}
我不完全理解您的问题。您有什么问题?请编辑您的答案,以便我们提供帮助

但是我确实看到了元数据问题与您对
请求
类型的
requestDetails
导航属性的定义有关。属性名称和语义都表明应该返回一个集合,但您已将其定义为标量

requestDetails: {
  entityTypeName: "requestDetails:#servicedesk",
  isScalar: true, // <-- HUH?
  associationName: "request_requestDetails",
  foreignKeyNames: ["workorderid"]
}
requestDetails:{
entityTypeName:“请求详细信息:#servicedesk”,

isScalar:true,//我发现了这样一个例子:,看起来我可以通过拦截ajax调用来更改url生成,不要使用它;这是一个蹩脚的例子,已经被弃用。但是您可能已经走上了一条很好的道路。请仔细阅读。自定义适配器可能就是一张罚单。将现有的角度适配器作为基准。或者您可能无法o通过在角度适配器中添加一个检测查询字符串中的意图并相应调整URL的角度适配器来实现您的目标。