是否有可能拥有一个支持项目中任何模型的通用 Web api?
class BaseApiController<T> :ApiController
{
private IRepository<T> _repository;
// inject repository
public virtual IEnumerable<T> GetAll()
{
return _repository.GetAll();
}
public virtual T Get(int id)
{
return _repositry.Get(id);
}
public virtual void Post(T item)
{
_repository.Save(item);
}
// etc...
}
class FooApiController : BaseApiController<Foo>
{
//..
}
class BarApiController : BaseApiController<Bar>
{
//..
}
这是一个好方法吗?
毕竟,我只是重复 CRUD 方法?我可以使用这个基类为我做这项工作吗?
这个可以吗?你会这样做吗?有更好的主意吗?