MVC Web API / Rest:按相关对象的请求

时间:2012-05-22 20:52:54

标签: rest asp.net-web-api

我有两个控制器; ProjectController和DocumentController。一个项目可以有几个文件。

如果我想通过projectid获取文档,那么使用REST应该如何以及在何处完成? (总的来说,我还没有得到REST如何处理相关数据)

修改:找到MVC Web API, get sub items,这可能是我正在寻找的。

的Ivar

1 个答案:

答案 0 :(得分:1)

我相信这应该在DocumentController中完成。以下是一个例子

public class DocumentController : ApiController {

    public IQueryable<Document> GetDocs() 
    {

        //get db context 

            return db.documents;

    }

    public ICollection<Document> Get(int id)
    {
        return db.documents.where(d = d.ProjectId == id);

    }

}

可以使用odata过滤器查询查询IQuerable版本。如下所示:

http://server:port/api/Document/getdocs?$filter=ProjectId eq ‘1'
http://server:port/api/Document/getdocs?$filter=DocumentId eq ‘1001'

(您必须修改MapHttpRoute以注册此路线)

get版本(第二个函数)将根据项目ID返回集合。