首页 > 解决方案 > 如何在 Web API 中管理 POST 请求

问题描述

作为初学者,我在制作 REST Web API 程序时遇到了麻烦。我的客户端应用程序 POST 数据与患者的实验室测试信息。数据将是每个患者和测试信息的四个字段,但每个患者的测试数量可以不同。

例如:一名患者进行了 1 次测试,

    {
     "patientID": 1121,
     "patientName": "BOB",
     "age": "22",
     "gender": "male",
     "TestID": 10,
     "TubeCode": "GRN",
     "TestName": "HIV",
     "TestCode": "GRN-CHM",
    }

例如:一位患者进行了 2 次测试

   {
     "patientID": 1122,
     "patientName": "LINDA",
     "age": "26",
     "gender": "Female",
     "TestID": 12,
     "TubeCode": "GRN",
     "TestName": "HIV",
     "TestCode": "GRN-CHM",
     "TestID": 13,
     "TubeCode": "LAV",
     "TestName": "LFT",
     "TestCode": "LAV-CHM",
   }

例如:一位患者进行了 3 次测试

  {
     "patientID": 1123,
     "patientName": "HARI",
     "age": "29",
     "gender": "male",
     "TestID": 14,
     "TubeCode": "GRN",
     "TestName": "HIV",
     "TestCode": "GRN-CHM",
     "TestID": 15,
     "TubeCode": "LAV",
     "TestName": "LFT",
     "TestCode": "LAV-CHM",
     "TestID": 16,
     "TubeCode": "SPC",
     "TestName": "SPC1",
     "TestCode": "SPC-CHM",
    }

当客户端发布所有这些示例时,API 必须能够接收这些数据。

我尝试了很多方法,比如为测试信息添加列表对象。但由于知识贫乏,未能完成。

     public void Post([FromBody] Patient_specimenInfo value)
     {           
      // I would like to know how can I manage the FROMBODY content here.
     }

我知道如何管理固定数量的患者和测试信息。但是这里的测试信息对患者来说不是固定的……我希望有人能给我最好的逻辑来处理这种情况。

标签: c#restmodel-view-controller

解决方案


您可以创建一个测试列表,例如

public class Patient
{
  ...
  public List<Test> Tests{get;set;}
  .
  .
}

然后从客户端应用程序发送这样的json:

{
 "patientID": 1122,
 "patientName": "LINDA",
 "age": "26",
 "gender": "Female",
 "Tests":
 [
  {
  "TestID": 12,
  "TubeCode": "GRN",
  "TestName": "HIV",
  "TestCode": "GRN-CHM"
  },
  {
  "TestID": 13,
  "TubeCode": "LAV",
  "TestName": "LFT",
  "TestCode": "LAV-CHM"
  }
 ]
}

推荐阅读