我试图做一些简单的事情,但想知道最好的方式..
我的大多数API获取服务接受参数,并且我已使用该URL来获取它们。到目前为止,我已经使用过:
[HttpGet("ACTION/{paramName}")]
public IActionResult ACTION(string param1)
这很好用,我不想替换它。我的问题是,当我需要两个参数时,我该怎么办?我找到了一种方法:
[HttpGet("ACTION/{param1}/{param2}")]
public IActionResult ACTION(string param1,string param2)
但它看起来很难看,我确信有更好的方法来捕捉参数。
答案 0 :(得分:0)
您有两种方式:
首先,正如你所说的丑陋:
[HttpGet("ACTION/{param1}/{param2}")]
public IActionResult ACTION(string param1,string param2)
此案例中的网址为:/ACTION/somevalue1/somevalue2
第二,也许是丑陋的:
[HttpGet("ACTION")]
public IActionResult ACTION(string param1,string param2)
该案例中的网址:/ACTION?param1=somevalue1¶m2=somevalue2
答案 1 :(得分:0)
您可能有一个可用于整个类的参数,可能会像这样定义:
[Route("api/[controller]")]
public class ProductsController : Controller
{
[HttpPut("Buy")] // Matches PUT 'api/Products/Buy'
[HttpPost("Checkout")] // Matches POST 'api/Products/Checkout'
public IActionResult Buy()
}
我真的更喜欢使用microsoft documentation中的示例,因为它们非常好。