这个服务端应该回复状态201(Created)

时间:2021-09-11 08:26:45

标签:

  创建一个Web API项目

第一步,创建以下项目

这个服务端应该回复状态201(Created)

固然,你也可以创建一个Web API项目,操作 Web API模板,Web API模板使用 ASP.Net MVC供给API的辅佐页。

添加Model

一个模型就是在你的应用措施中展示数据的一个东西。ASP.NET Web API 可以自动序列化你的模型到JSON,XML或一些其它格局,然后把已序列化的数据写入到HTTP响应动静的正文。只要客户端可以读取序列化的数据,,那么它同样可以反序列这个东西。大大都的客户端都可以解析JSON或XML。别的,客户端可以声明它想要通过HTTP请求动静中设置的接收标头的那种格局。

然后我们在Models目录下创建一个简单的展示商品的Model

namespace WebAPIDemo.Models { public class Product { public int Id { get; set; } public string Name { get; set; } public string Category { get; set; } public decimal Price { get; set; } } }

  

添加Repository

首先我们需要存储产品的调集,分隔手机我们的处事是一个好主意,这种方法,我们可以转变后备存储,而不用改削处事器的实现,这种模型的设计叫做仓储模型,首先成立一个接口

namespace WebAPIDemo.Models { public interface IProductRepository { IEnumerable<Product> GetAll(); Product Get(int id); Product Add(Product item); void Remove(int id); bool Update(Product item); } }

 暂时我们把接口和实现类放在一个目录下,此刻在Models目录下添加此外一个类,这个类将实现IProductRepository接口

1 namespace WebAPIDemo.Models 2 { 3 public class ProductRepository : IProductRepository 4 { 5 private List<Product> products = new List<Product>(); 6 private int _nextId = 1; 7 public ProductRepository() 8 { 9 Add(new Product { Name = "一加5", Category = "一加", Price = 2999 }); 10 Add(new Product { Name = "小米pro", Category = "小米", Price = 5599 }); 11 Add(new Product { Name = "一加X", Category = "一加", Price = 1499 }); 12 } 13 public Product Add(Product item) 14 { 15 if (item == null) 16 throw new ArgumentNullException("item"); 17 item.Id = _nextId++; 18 products.Add(item); 19 return item; 20 } 21 22 public Product Get(int id) 23 { 24 return products.Find(y => y.Id == id); 25 } 26 27 public IEnumerable<Product> GetAll() 28 { 29 return products; 30 } 31 32 public void Remove(int id) 33 { 34 products.RemoveAll(y => y.Id == id); 35 } 36 37 public bool Update(Product item) 38 { 39 if (item == null) 40 throw new ArgumentNullException("item"); 41 int index = products.FindIndex(y => y.Id == item.Id); 42 if (index < 0) 43 return false; 44 products.RemoveAt(index); 45 products.Add(item); 46 return true; 47 } 48 } 49 }

添加Controller