Restful是符合rest架構風格的網路API介面,完全承認Http是用於標識資源。Restful URL是面向資源的,可以唯一標識和定位資源。 對於該URL標識的資源做何種操作是由Http方法決定的。
使用者端在給伺服器端傳遞引數的時候,有URL、QueryString、請求報文體3種主要方式。
對於儲存、更新類的請求一般都是使用POST、PUT請求,把全部引數都放到請求報文體中。 對於GET請求,一般引數的內容都不會太長,因此統一通過QueryString傳遞引數就可以。 對於極少數引數內容超過URL限制的請求,由於GET、PUT請求都是冪等的,因此把請求改成通過PUT請求,然後通過報文體來傳遞引數。
微軟為Web API提供的模板程式碼大部分都嚴格遵守Restful風格的,如下
namespace WebApplication1.Controllers
{
[Route("api/[controller]")]//Restful 風格
//[Route("api/[controller]/[action]")] //RPC風格
[ApiController]
public class RestfulApiController : ControllerBase
{
// GET: api/<RestfulApiController>
[HttpGet]
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}
// GET api/<RestfulApiController>/5 根據id獲取
[HttpGet("{id}")]
public string Get(int id)
{
return "value";
}
// POST api/<RestfulApiController>
[HttpPost]
public void Post([FromBody] string value)
{
//code
}
// PUT api/<RestfulApiController>/5
[HttpPut("{id}")]
public void Put(int id, [FromBody] string value)
{
//code
}
// DELETE api/<RestfulApiController>/5
[HttpDelete("{id}")]
public void Delete(int id)
{
//code
}
}
}