HTTP API操作相互调用

本文关键字:调用 操作 API HTTP | 更新日期: 2023-09-27 18:08:32

方法之间重用公共API操作是否ok/可接受?

假设我有一个方法(GET api/something),在这个方法中我调用internal (GET api/somethingElse)。

在内部意味着我实例化类并调用方法

HTTP API操作相互调用

正如@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变量引用。

然后你可以重用控制器和动作方法之间的逻辑