C# 相互调用的HTTP API操作

C# 相互调用的HTTP API操作,c#,api,rest,C#,Api,Rest,在方法之间重复使用公共API操作可以/可以接受吗 假设我有一个方法(getapi/something),在这个方法中我调用internal(getapi/somethingElse) 内部意思是我实例化类并调用方法。如中所述,等等,您不应该在控制器中实例化控制器 HTTP API(应该是)只是将HTTP请求映射到业务逻辑的一个非常薄的层,可能在此过程中执行一些身份验证和授权 API控制器中的典型GET方法应如下所示: public SomeModel Get(int id) { var

在方法之间重复使用公共API操作可以/可以接受吗

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

内部意思是我实例化类并调用方法。

如中所述,等等,您不应该在控制器中实例化控制器

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
中,甚至在另一个控制器中,您想要访问这个逻辑,那么您应该研究将这个方法中发生的所有事情抽象到一个单独的类中,在我以前通过
\u repository
变量引用的代码中

然后您可以在控制器和操作方法之间重用逻辑。

如中所述,等等,您不应该在控制器中实例化控制器

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
中,甚至在另一个控制器中,您想要访问这个逻辑,那么您应该研究将这个方法中发生的所有事情抽象到一个单独的类中,在我以前通过
\u repository
变量引用的代码中

然后您可以在控制器和操作方法之间重用逻辑。

如中所述,等等,您不应该在控制器中实例化控制器

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
中,甚至在另一个控制器中,您想要访问这个逻辑,那么您应该研究将这个方法中发生的所有事情抽象到一个单独的类中,在我以前通过
\u repository
变量引用的代码中

然后您可以在控制器和操作方法之间重用逻辑。

如中所述,等等,您不应该在控制器中实例化控制器

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
中,甚至在另一个控制器中,您想要访问这个逻辑,那么您应该研究将这个方法中发生的所有事情抽象到一个单独的类中,在我以前通过
\u repository
变量引用的代码中


然后,您可以在控制器和操作方法之间重用逻辑。

一般来说,实例化一个类并调用该类上的方法没有错。在你的特殊情况下,这是否是一个好主意,我们不能不了解你的结构就知道。控制器方法调用其他控制器方法是不常见的,通常它们调用公共的支持逻辑。一般来说,实例化一个类并调用该类上的方法并没有什么错。在你的特殊情况下,这是否是一个好主意,我们不能不了解你的结构就知道。控制器方法调用其他控制器方法是不常见的,通常它们调用公共的支持逻辑。一般来说,实例化一个类并调用该类上的方法并没有什么错。在你的特殊情况下,这是否是一个好主意,我们不能不了解你的结构就知道。控制器方法调用其他控制器方法是不常见的,通常它们调用公共的支持逻辑。一般来说,实例化一个类并调用该类上的方法并没有什么错。在你的特殊情况下,这是否是一个好主意,我们不能不了解你的结构就知道。控制器方法调用其他控制器方法是不常见的,通常它们调用公共的支持逻辑。我认为所有的评论都澄清了我的感受,例如thx只是想强调这一点:Web服务API只是一个配置路由、身份验证/授权的公共访问点,以及其他一些特定于Web服务的操作,这些操作通常是业务层的类库API。类库API对访问或路由没有限制,这就是为什么需要Web服务API的原因。我想所有的评论都澄清了我的感受,thx就是一个例子,只是想强调这一点:Web服务API只是一个配置路由、身份验证/授权的公共访问点,以及其他一些特定于Web服务的操作,这些操作通常是业务层的类库API。类库API对访问或路由没有限制,这就是为什么需要Web服务API的原因。我想所有的评论都澄清了我的感受,thx就是一个例子,只是想强调这一点:Web服务API只是一个配置路由、身份验证/授权的公共访问点,以及其他一些特定于Web服务的操作,这些操作通常是业务层的类库API。类库API对访问或路由没有限制,这就是为什么需要Web服务API的原因。我认为所有的评论都澄清了我的感受,并承认了我的感受,例如thx只是试图emp