restful webapi 多个方法,多个put,多个get,多个post方法的实现, 电脑版发表于:2023/8/6 17:47 webapi 如果有多个put或者post方法怎么办呢,用路由参数来区分撒。 ### 比如下面这种一个带参数一个不带 <img src="https://img.tnblog.net/arcimg/xiuxin2/6317401a039e4a14b6be830f2d779e10.png" style="width:399px;height:auto;"> ``` [HttpGet] public IEnumerable<string> Get() { return new string[] { "value1", "value2" }; } // GET api/<ValuesController>/5 [HttpGet("{id}")] public string Get(int id) { return "value"; } ``` 当然一个带两个参数,一个带一个参数这种也可以用这样的方式区分,如果参数个数也一样怎么办呢?自己路由里边加一点参数就行了嘛。 ### 配置路由+方法名区分 <img src="https://img.tnblog.net/arcimg/xiuxin2/64497807808a4933a5e776ae208db4ac.png" style="width:399px;height:auto;"> ``` [HttpGet("GetName/{id}")] public string GetName(int id) { return "value"; } [HttpGet("GetAge/{id}")] public int GetAge(int id) { return 18; } ``` 当然这种通过路由和方法名区分的方式其实不是太符合restful的标准,不过在某些时候下也可以考虑这么去使用。 注意配置路由的时候不要写成`[HttpGet("/GetName/{id}")]`,这样前面加了斜杠,前面的路由就没有控制器的限制了,就变成这样了,就不是很科学了。 ![](https://img.tnblog.net/arcimg/xiuxin2/b685a22ef89849608754562b1ea30082.png)