亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

ASP.NET Core 在 Web API 中處理自定義響應/輸出格式的方法

ASP.NET Core 在 Web API 中處理自定義響應/輸出格式的方法

C#
幕布斯6054654 2021-06-19 19:12:41
我想創建自定義 JSON 格式,它將響應包裝在數據中并返回 Content-Type 之類的vnd.myapi+json目前我已經創建了一個像我在控制器中返回的包裝類,但如果可以在后臺處理它會更好:public class ApiResult<TValue>{    [JsonProperty("data")]    public TValue Value { get; set; }    [JsonExtensionData]    public Dictionary<string, object> Metadata { get; } = new Dictionary<string, object>();    public ApiResult(TValue value)    {        Value = value;    }}[HttpGet("{id}")]public async Task<ActionResult<ApiResult<Bike>>> GetByIdAsync(int id){    var bike = _dbContext.Bikes.AsNoTracking().SingleOrDefault(e => e.Id == id);    if (bike == null)    {        return NotFound();    }    return new ApiResult(bike);}public static class ApiResultExtensions{    public static ApiResult<T> AddMetadata<T>(this ApiResult<T> result, string key, object value)    {        result.Metadata[key] = value;        return result;    }}我想返回如下響應:{    "data": { ... },    "pagination": { ... },    "someothermetadata": { ... }}但是分頁必須以某種方式添加到我的控制器操作中的元數據中,當然這里有一些關于內容協商的文章:https : //docs.microsoft.com/en-us/aspnet/core/web-api/advanced /formatting?view=aspnetcore-2.1但我仍然想確定我在正確的軌道上。如果這將使用我的自定義格式化程序在引擎蓋下處理,那么我將如何向其添加分頁之類的元數據,而不是在“數據”之外而不是在其中?當有一個自定義格式化程序時,我仍然希望有一些方法可以從我的控制器或通過某種機制向它添加元數據,以便格式可以擴展。上述方法的一個優點或缺點是它適用于所有序列化程序 xml、json、yaml 等。通過使用自定義格式化程序,它可能僅適用于 json,我將需要創建幾個不同的格式化程序來支持我使用的所有格式想。
查看完整描述

1 回答

  • 1 回答
  • 0 關注
  • 328 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號