diff --git a/Apewer/Apewer.csproj b/Apewer/Apewer.csproj index 93e6e14..c62c723 100644 --- a/Apewer/Apewer.csproj +++ b/Apewer/Apewer.csproj @@ -7,7 +7,7 @@ Apewer Apewer Apewer - 6.0.10 + 6.0.11 diff --git a/Apewer/Web/WebUtility.cs b/Apewer/Web/WebUtility.cs index b28e71b..ec2ef6c 100644 --- a/Apewer/Web/WebUtility.cs +++ b/Apewer/Web/WebUtility.cs @@ -5,6 +5,8 @@ using System.Text; using System.Diagnostics; using Apewer.Models; using System.IO; +using System.Collections; +using Apewer.Source; #if NETFX using System.Web; @@ -375,6 +377,57 @@ namespace Apewer.Web #endif } + /// 设置响应,当发生错误时设置响应。返回错误信息。 + public static string Respond(ApiResponse response, IList list, bool lower = true, int depth = -1, bool force = false) + { + if (response == null) return "Response 对象无效。"; + + if (list == null) + { + var error = "列表对象无效。"; + response.Error(error); + return error; + } + + var json = Json.Parse(list, lower, depth, force); + if (json == null || !json.Available) + { + var error = "列表无法序列化。"; + response.Error(error); + return error; + } + + if (response.Data == null) response.Data = Json.NewObject(); + response.Data.SetProperty("count", list.Count); + response.Data.SetProperty("list", Json.Parse(list, lower, depth, force)); + return null; + } + + /// 设置响应,当发生错误时设置响应。返回错误信息。 + public static string Respond(ApiResponse response, Record record, bool lower = true) + { + if (response == null) return "Response 对象无效。"; + + if (record == null) + { + var error = "记录无效。"; + response.Error(error); + return error; + } + + var json = Json.Parse(record, lower); + if (json == null || !json.Available) + { + var error = "记录无法序列化。"; + response.Error(error); + return error; + } + + if (response.Data == null) response.Data = Json.NewObject(); + response.Data.Reset(json); + return null; + } + #endregion #region api diff --git a/Apewer/_ChangeLog.md b/Apewer/_ChangeLog.md index f5a5294..bc46ec5 100644 --- a/Apewer/_ChangeLog.md +++ b/Apewer/_ChangeLog.md @@ -5,6 +5,9 @@ ### 最新提交 +### 6.0.11 +- 扩展方法 ApiResponse.Respond 支持返回错误信息。 + ### 6.0.10 - 修正 SafeKey 错误。 diff --git a/Apewer/_Extensions.cs b/Apewer/_Extensions.cs index 047c2c9..9b41272 100644 --- a/Apewer/_Extensions.cs +++ b/Apewer/_Extensions.cs @@ -565,42 +565,11 @@ public static class Extensions return target; } - /// - /// - /// - /// - /// - /// - public static void Respond(this ApiResponse @this, IList list, bool lower = true, int depth = -1, bool force = false) - { - if (@this == null) return; - - if (list == null) - { - @this.Error("获取失败。"); - return; - } - - @this.Data.SetProperty("count", list.Count); - @this.Data.SetProperty("list", Json.Parse(list, lower, depth, force)); - } + /// 设置响应,当发生错误时设置响应。返回错误信息。 + public static string Respond(this ApiResponse @this, IList list, bool lower = true, int depth = -1, bool force = false) => WebUtility.Respond(@this, list, lower, depth, force); - /// - /// - /// - /// - public static void Respond(this ApiResponse @this, Record record, bool lower = true) - { - if (@this == null) return; - - if (record == null) - { - @this.Error("获取失败。"); - return; - } - - @this.Data.Reset(Json.Parse(record, lower)); - } + /// 设置响应,当发生错误时设置响应。返回错误信息。 + public static string Respond(this ApiResponse @this, Record record, bool lower = true) => WebUtility.Respond(@this, record, lower); #endif