强制API控制器实现

问题描述 投票:1回答:1

我希望有一个特定API控制器的实现,它将与Microsoft.AspNetCore.Owin一起实现,用于创建一个.net核心的rest api。

我想给别人提供实现他们自己的类似控制器的选项,但也对他们必须实现的内容有一些限制。例如:

[RoutePrefix("calculator")]
public class CalculatorController
{
    [HttpGet]
    [Route("add/{int1}/{int2}")]
    public int AddItems(int int1, int int2)
    {
        return int1 + int2;
    }

    [HttpGet]
    [Route("multiply/{int1}/{int2}")]
    public int MultiplyItems(int int1, int int2)
    {
        return int1 * int2;
    }
}

我想我可以创建一个接口(例如ICanCalculate),它将有两个方法AddItemsMultiplyItems,但有没有办法强制RouteHttpMethod属性?

基本上我想让其他用户选择改变api端点的主体而不改变RouteHttpMethod属性。

也许另一种方法是创建一些abstract class,其方法为virtual?我不太确定如何解决问题,任何帮助将不胜感激。

非常感谢!

c# rest api owin
1个回答
2
投票

不可能从您的控制器继承以保持属性并直接更改主体(至少不是以干净的方式)。

最好的选择是添加一个中间层(抽象类)并在控制器中使用它。比其他用户可以用自己的逻辑实现抽象类(不是直接控制器)。

© www.soinside.com 2019 - 2024. All rights reserved.