我正在使用webApi并使用entityframework生成模型GET的重载方法(int id)我试图使用$resource
我正在尝试使用$resource
将可选参数传递给来电,但收到错误[$resource:badcfg]
我有一个谷歌和人们说添加
{
'get': {method: 'GET'},
'query': {method: 'GET', isArray: true}
}
进入该功能,所以我尝试了这个:但仍然没有运气。
function minorResource($resource, appSettings) {
return $resource(appSettings.serverPath + "/api/minorworks/:id",
{
'get': {method: 'GET'},
'query': {method: 'GET', isArray: true}
});
}
您会使用2种不同的方法,还是可以使上述功能起作用?
对于completness,这是我的Controller调用
minorResource.query({id: vm.seachCriteria}, function (data) {
//console.log(data);
vm.minorWork = data;
});
答案 0 :(得分:0)
请注意,查询用于检索数组对象,而get用于检索单个对象。这意味着通过get,您通常会将对象的id发送给API。
所以在你的情况下:
var minorWorksResource = $resource(appSettings.serverPath + "/api/minorworks/:id");
// Note that query returns an array.
var works = minorWorksResource.query(function() {
var firstWork = works[0];
});
// Note that we pass an ID that will be fetched in the query string.
var singleWork = minorWorksResource.get({id: 123}, function() {
});
WebAPI部分:
[RoutePrefix("api/minorworks")]
public class MinorWorksController : ApiController {
public IHttpActionResult Get(int id) {
var singleWork = null;
// Retrieve a single item;
return Ok(singleWork);
}
public IHttpActionResult Get() {
var workList = null;
// Retrieve the whole list.
return Ok(workList );
}
}