From ffc6c0efe971e5d1059dddf031634c848f99acbe Mon Sep 17 00:00:00 2001 From: Elivo Date: Wed, 14 Oct 2020 21:29:14 +0800 Subject: [PATCH] =?UTF-8?q?Apewer-6.0.11=EF=BC=9AApiResponse.Respond=20?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=8F=8D=E6=82=94=E9=94=99=E8=AF=AF=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Apewer/Apewer.csproj | 2 +- Apewer/Web/WebUtility.cs | 53 ++++++++++++++++++++++++++++++++++++++++ Apewer/_ChangeLog.md | 3 +++ Apewer/_Extensions.cs | 39 +++-------------------------- 4 files changed, 61 insertions(+), 36 deletions(-) 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