如何将元数据附加到Web Api响应

时间:2017-08-24 17:18:52

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

请你在下面帮忙。

  1. 我需要返回api响应作为IEnumerable类型的JSON响应,以及我需要将自己的json属性附加到此返回对象的响应。

    private async Task<IEnumerable<Funds>> GetFundDetails(int productid)
    {
        var action = $"productfunds/{productid}/detail";
        var res = await HttpClient.GetAsync($"{BaseResource}{action}");
        res.EnsureSuccessStatusCode();
        var collection = await res.Content.ReadAsAsync<Dto.FundDetail>();
        var items = (collection.Funds ?? Enumerable.Empty<Dto.Funds>()).Select<Dto.FundDetail, FundAsset>(MapFunds);
        return items;
    }
    
  2. 回应:

    {
    "items": [
        {
      "fundId": "036",
      "fundName": "ABC Fund",
      "amount": 1248111.26
    },
    {
      "fundId": "037",
      "fundName": "XYZ Fund",
      "amount": 7858564.84
    }
    ]
    }
    

    预期回应:

    {
      "items": [
        {
          "fundId": "036",
          "fundName": "ABC Fund",
          "amount": 1248111.26
        },
        {
          "fundId": "037",
          "fundName": "XYZ Fund",
          "amount": 7858564.84
        }
       ],
       ProductName: "PQR Product"
       ProductId: "1001"
    }
    

    - &GT;我需要从集合对象中追加ProductName和ProductId,它们是Dto.FundDetail的属性。

1 个答案:

答案 0 :(得分:0)

您应该制作包含Dto.FundsProductIdProductName的新模型, 像这样的事情:

   public class NewModelToReturn{

     public List<Dto.Funds> Funds{get;set;}
     public string ProductName;
     public string ProductId;

 }

顺便说一下,我还鼓励您阅读我的博客文章,了解如何设计ASP.NET Web Api响应,以了解有关返回一致的Web Api响应(包括成功和失败响应)的更多信息:https://www.vladopandzic.com/asp-net-web-api/building-consistent-responses-asp-net-web-api/