简体   繁体   中英

How to send IEnumurable request to a web API?

I am trying to receive a request in WeB API, and the request class type is IEnumurable. I am testing it using postman but always it comes as null value. Below is my code piece: When I removed IEnumurable from the request class, I am able to get the values from POSTMAN.

Controller Code:

[HttpPost]
[Route("PostTotalLossData")]
public IHttpActionResult PostTotalLossData([FromBody]TotalLossReviewedStatusRequest reviewedStatusReq)
{
    try
    {
        if (reviewedStatusReq != null)
        {
            var result = _iTLTT_BAL.UpdateTotalLossReviewedStatus(reviewedStatusReq);
            //return Ok(result);
            return Ok(reviewedStatusReq);
        }
        else
        {
            Log.Info("Invalid request received, Request : " + reviewedStatusReq);
            return Ok("Invalid request");
        }
    }
    catch (Exception ex)
    {
        Log.Error(ex.Message);
        throw ex;
    }           
}

Request Class:

namespace CTS.NextGen.API.TLTT.Models.Request
{
    [Serializable]
    public class TotalLossReviewedStatusRequest : IEnumerable<TotalLossReviewedStatus>
    {
        public List<TotalLossReviewedStatus> totalLossReviewedStatuses { get; set; }

        public IEnumerator<TotalLossReviewedStatus> GetEnumerator()
        {
            return this.totalLossReviewedStatuses.GetEnumerator();
            
        }

        IEnumerator IEnumerable.GetEnumerator()
        {
            return this.totalLossReviewedStatuses.GetEnumerator();
            
        }
    }
}

Postman request body:

{
"totalLossReviewedStatuses" : [
    {
  "n_claimNumber" : "123456678",
   "n_damageID" : "123rtyui89",
   "b_initiialReviewed" : "12/09/2020",
   "b_reviewed" :"Y",
   "heloo":"N"
    },
    {
  "n_claimNumber" : "123456678",
   "n_damageID" : "123rtyui89",
   "b_initiialReviewed" : "12/09/2020",
   "b_reviewed" :"Y"
    }
 ]
    
}

Please help me with this.

Your request body should be array type instead of object type. Change the input request body as

[    
   {
    "totalLossReviewedStatuses" : [
        {
      "n_claimNumber" : "123456678",
       "n_damageID" : "123rtyui89",
       "b_initiialReviewed" : "12/09/2020",
       "b_reviewed" :"Y",
       "heloo":"N"
        },
        {
      "n_claimNumber" : "123456678",
       "n_damageID" : "123rtyui89",
       "b_initiialReviewed" : "12/09/2020",
       "b_reviewed" :"Y"
        }
     ]
        
    }
    {
       ..........Other objects. If not needed then remove this object declaration
    }
]

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM