首页 > 解决方案 > 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 对吗?我对么?

标签: asp.net-coreasp.net-core-webapi

解决方案


经过更多研究后,我发现我可以在正文中接收带有 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;
    }
}

推荐阅读