HTTP API操作相互调用
本文关键字:调用 操作 API HTTP | 更新日期: 2023-09-27 18:08:32
方法之间重用公共API操作是否ok/可接受?
假设我有一个方法(GET api/something),在这个方法中我调用internal (GET api/somethingElse)。
在内部意味着我实例化类并调用方法
正如@David所说,正如在Access一个web api控制器到另一个web api控制器,从另一个控制器调用WebApi控制器,等等中所解释的,你不应该在控制器中实例化控制器。
HTTP API(应该是)只是一个非常薄的层,用于将HTTP请求映射到业务逻辑,可能在此过程中执行一些身份验证和授权。API控制器中典型的GET方法应该是这样的:public SomeModel Get(int id)
{
var model = _repository.Get(id);
return model;
}
如果你这样做:
public SomeModel Get(int id)
{
var database = new Database();
var record = database.SomeModels.Get(id);
record.FooProperty = DoSomeLogic();
// and so on
return record;
}
在另一个方法GetSomethingElse
中,甚至可能在另一个控制器中,您想要访问此逻辑,那么您应该考虑将此方法中发生的一切抽象为单独的类,在我以前的代码中通过_repository
变量引用。
然后你可以重用控制器和动作方法之间的逻辑