2017-05-31 94 views
1

所以一个典型的crud会是这样的。很多很多crud请求

[Route("api/[controller]")] 
public class ProvidersController : Controller { 

    [HttpGet] 
    public IEnumerable<object> Get(){} 

    [HttpGet("{id}")] 
    public IActionResult Get(int id) {} 

    // POST api/provider 
    [HttpPost] 
    public IActionResult Post([FromBody]Provider value){} 

    // PUT api/provider/5 
    [HttpPut("{id}")] 
    public IActionResult Put(int id, [FromBody]Provider value){} 

    // DELETE api/provider/5 
    [HttpDelete("{id}")] 
    public IActionResult Delete(int id) {} 
} 

但是我想将它扩展为多对多的类型资源。

我在哪里有路径/ api/provider/{id}/resolution [GET,POST,PUT,DELETE]。

我在不同的班级做这个或者我是否扩展这个?我可以将它添加到这个类吗?

我试图做下面的事情,但它似乎不应该在同一类。

[Route("api/[controller]")] 
public class ProvidersController : Controller { 

    [HttpGet] 
    public IEnumerable<object> Get(){} 

    [HttpGet("{id}")] 
    public IActionResult Get(int id) {} 

    // POST api/provider 
    [HttpPost] 
    public IActionResult Post([FromBody]Provider value){} 

    // PUT api/provider/5 
    [HttpPut("{id}")] 
    public IActionResult Put(int id, [FromBody]Provider value){} 

    // DELETE api/provider/5 
    [HttpDelete("{id}")] 
    public IActionResult Delete(int id) {} 

    Route["{providerId}/resources/"] 
    public IEnumerable<object> Get(int providerId){} 

    Route["{providerId}/resources/{id}"] 
    public IActionResult<object> Get(int providerId, int id){} 
} 

回答

1

我没有看到任何理由将它移动到另一个控制器。当然你可以移动,但总是会有这两个get方法(Get(int providerId)和Get(int providerId,int id))

+0

所以如果我将它移动到另一个控制器,路线将如何显示? [Route(“api/provider/{providerId}/[controller]”)] public class OtherController:Controller {? –

+0

api/resource/{providerId}/{id} –