我正在尝试使用.net内核构建简单的Web api,以进行基本的计算,例如加法,减法,乘法和除法。我用多个GET方法创建了控制器类。控制器类代码,如下所示
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
// For more information on enabling Web API for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860
namespace WebApplication2.Controllers
{
[Route("api/[controller]")]
public class OwnerController : Controller
{
[HttpGet]
public int Add(int value1, int value2)
{
return value1 + value2;
}
[HttpGet]
public int Substract(int value1, int value2)
{
return value1 - value2;
}
[HttpGet]
public int Multiply(int value1, int value2)
{
return value1 * value2;
}
[HttpGet]
public int Divide(int value1, int value2)
{
return value1 / value2;
}
[HttpGet]
public string Get()
{
return "default";
}
}
}
当调用相应的API时,如何路由此控制器执行特定操作?
答案 0 :(得分:1)
您的路线是在您的控制器级别指定的
[Route("api/[controller]")]
此模板仅提供到控制器的路由,希望框架通过Http动词/方法找出其余路由:
GET api/owner
POST api/owner
PUT api/owner
等等。由于您正在重用GET方法,因此您可能希望将操作名称添加到路由中。您可以通过两种方式完成此操作:
示例1:
[Route("api/[controller]/[action]")]
示例2:
[Route("api/[controller]")]
public class OwnerController : Controller
{
[HttpGet("Add")]
public int Add(int value1, int value2)
{
return value1 + value2;
}
[HttpGet("Subtract")]
public int Substract(int value1, int value2)
{
return value1 - value2;
}
...
}
这些更改中的任何一个之后,您都可以拨打类似电话
GET api/owner/add
GET api/owner/subtract
等等。
答案 1 :(得分:1)
您可以使用以下内容
[HttpGet("addition")]
public int Add(int value1, int value2)
{
return value1 + value2;
}
然后添加路线是GET api / owner / addition