asp.net-core - Restful api 从请求中接收数组
问题描述
我的任务是构建一个 API,作为请求,它将获取一个产品编号,其中包含数量和尺寸、邮政编码、运输方式。
客户有一个购物车,该购物车中包含产品编号、数量和尺寸,所以基本上他会发送一个如下所示的 json 请求
{
"ShoppingCart": {
"Products": [
{
"Sku": "123",
"Size": "S",
"Quantity": "1"
},
{
"Sku": "456",
"Size": "M",
"Quantity": "2"
},
{
"Sku": "789",
"Size": "L",
"Quantity": "3"
}
],
"ShipToZip": "54452",
"ShipMethod": "Ground"
}
}
是否可以在我正在制作的.net core rest webapi 上接收 HTTP json 请求。
如果是这样,这样发送 json 的路由会是什么样子?如果他们必须将整个 json 放在 url 中,那会很长,对吗?
编辑:经过更多研究,我发现我可以在正文中接收带有 JSON 的 POST 请求,从那里我应该能够读取该 json,用它做一些事情,然后返回 json 对吗?我对么?
解决方案
经过更多研究后,我发现我可以在正文中接收带有 JSON 的 POST 请求,从那里我应该能够读取该 json,用它做一些事情,然后返回 json 对吗?我对么?
是的。你是对的。例如,以下控制器操作将接受带有来自您问题的 JSON 的 POST 正文,并使用相同的 JSON 进行响应。
public class Product
{
public string Sku { get; set; }
public string Size { get; set; }
public int Quantity { get; set; }
}
public class Cart
{
public List<Product> Product { get; set; }
public string ShipToZip { get; set; }
public string ShipMethod { get; set; }
}
public class CartBody
{
public Cart Cart { get; set; }
}
[Route("api/[controller]")]
[ApiController]
public class ValuesController : ControllerBase
{
// POST api/values
[HttpPost]
public ActionResult<CartBody> Post(CartBody cartBody)
{
return cartBody;
}
}
推荐阅读
- javascript - 组件 API 和后端 API 的区别?
- python - 连接具有不同值的 2 个数据帧
- python - 如何使用 Django 模型从 Wagtail CMS 流字段面板中获取值?
- sql - 检查存储过程中范围内的值
- java - ModelMapper - 定义显式映射时出现非法 SourceGetter 错误
- jmeter - 我无法使用 jmeter 记录 webrtc 协议
- android - 为什么 onNext() 正在更新 textview,尽管在不同的线程上观察 On(Schedulars.io())?
- elasticsearch - 为什么在周日 06:00 UTC 从 elasticsearch 中删除索引?
- jquery - Angular初始加载所有es js包文件
- java - 如何使用外部方法调用模拟在构造函数中初始化的对象?