(精华)2020年8月17日 微服务 WebApi的使用

87 阅读1分钟

特性路由的使用

//[RoutePrefix("api/Values/")]//action就可以去掉这一节;如果某个方法又不要了,可以在路由前面加个~  [Route("~api/Values/{id:int}")]
public class ValuesController : ApiController
{
	// GET api/values
  	//1.匹配请求的Method  
     //2.匹配HttpGet
     //3.匹配参数
     //特性路由:优先级最高,绕开默认的Api路由;
     //特性路由:随意的指定我们请求Api的URL
    // GET api/values
    [HttpGet]
    public IEnumerable<string> LGet()
    {
        return new string[] { "value1", "value2" };
    }

    // GET api/values/5
    [Route("api/Values/{id:int}")]//regex()
    [HttpGet]
    public string GetById(int id)//Id查询
    {
        return "value";
    }

    //[Route("api/Values/{id:int=10}")]//可空
    //[Route("api/Values/{id:int?}")]//可空
    //public string GetId(int id = 10)//Id查询
    //{
    //    return "value";
    //}

    /// <summary>
    /// get value--value有子表数据--
    /// </summary>
    /// <param name="id"></param>
    /// <returns></returns>
    [Route("api/Values/{id:int}/Type/{typeId:int}")]
    public string Get(int id, int typeId)//Id查询
    {
        return $"value-Type {id} {typeId}";
    }

    [Route("api/Values/{name}")]
    public string Get(string name)//名称查询
    {
        return $"value {name}";
    }

    [Route("api/Values/{id}/V2")]
    [HttpGet]
    public string LGetV333455(int id)
    {
        return "value V2";
    }

    // POST api/values
    public void Post([FromBody]string value)
    {
    }

    // PUT api/values/5
    public void Put(int id, [FromBody]string value)
    {
    }

    // DELETE api/values/5
    public void Delete(int id)
    {
    }
}