使用C#在ASP.NETWebAPI中创建一个API端点,以接收post并存储数据

tquggr8v  于 2023-04-22  发布在  .NET
关注(0)|答案(1)|浏览(161)

请原谅我是一个API新手。在ASP.NET Framework 4.7.2 Web API中,我需要创建一个API端点,以便在外部事件发生时接收更新。
当事件发生时,端点将收到以下JSON:

{
    "dispatch": 
        {
            "OrderID": "ABC123",
            "DispatchDate": "2020-11-20",
            "ConsignmentNo": "ABCV123456", 
            "TrackingUrl": "https://www.anyco.com?consignment=ABCV123456"
        }
}

对于上面的我有下面的类

public class Tracking
{
    public string OrderID { get; set; }
    public DateTime DispatchDate { get; set; }
    public string ConsignmentNo { get; set; }
    public string TrackingUrl { get; set; }
}

我让API get endpoints在这里工作:-https://www.mikesdotnetting.com/article/261/integrating-web-api-with-asp-net-razor-web-pages
我只需要得到POST部分来读取JSON,然后我就可以存储我想要的部分。

// POST api/<controller>
public void Post([FromBody]Tracking tracking) 
{
    // read jason
    // Save to db
}

我的API的GET部分用预填充的数据呈现正确的Jason。我只是不知道如何读取对方发送的传入Jason,拉出我想要的2部分。
任何和所有的指针将是受欢迎的。

lyr7nygr

lyr7nygr1#

我在几个人的帮助下设法解决了这个问题。

private List<Dispatch> dispatches = new List<Dispatch>();

// POST api/<controller>
public IHttpActionResult Post([FromBody] DispatchData data)
{
    Dispatch dispatch = data.Dispatch;

    var tracking = dispatch.ConsignmentNo;

    // save to db code here

    return Json(dispatch);

}

public class DispatchData
{
    public Dispatch Dispatch { get; set; }
}

public class Dispatch
{
    public string OrderID { get; set; }
    public DateTime DispatchDate { get; set; }
    public string ConsignmentNo { get; set; }
    public string TrackingUrl { get; set; }
}

相关问题