修正了文档,增加了SimApiError
This commit is contained in:
@@ -7,6 +7,12 @@ public class SimApiCache(IDistributedCache cache)
|
||||
{
|
||||
private const string Prefix = "SimApi:Cache:";
|
||||
|
||||
/// <summary>
|
||||
/// 设置缓存
|
||||
/// </summary>
|
||||
/// <param name="key"></param>
|
||||
/// <param name="value"></param>
|
||||
/// <param name="options"></param>
|
||||
public void Set(string key, object value, DistributedCacheEntryOptions? options = null)
|
||||
{
|
||||
if (options is not null)
|
||||
@@ -19,16 +25,31 @@ public class SimApiCache(IDistributedCache cache)
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 移除缓存
|
||||
/// </summary>
|
||||
/// <param name="key"></param>
|
||||
public void Remove(string key)
|
||||
{
|
||||
cache.Remove(Prefix + key);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取string类型缓存
|
||||
/// </summary>
|
||||
/// <param name="key"></param>
|
||||
/// <returns></returns>
|
||||
public string? Get(string key)
|
||||
{
|
||||
return cache.GetString(Prefix + key);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取特定类型缓存
|
||||
/// </summary>
|
||||
/// <param name="key"></param>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <returns></returns>
|
||||
public T? Get<T>(string key)
|
||||
{
|
||||
var data = cache.GetString(Prefix + key);
|
||||
|
||||
@@ -0,0 +1,83 @@
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using SimApi.Exceptions;
|
||||
|
||||
namespace SimApi.Helpers;
|
||||
|
||||
public static class SimApiError
|
||||
{
|
||||
/// <summary>
|
||||
/// 错误返回
|
||||
/// </summary>
|
||||
/// <param name="code">错误代码</param>
|
||||
/// <param name="message">错误描述(若是常规错误,代码可自动带取描述)</param>
|
||||
/// <returns></returns>
|
||||
public static void Error(int code = 500, string message = "")
|
||||
{
|
||||
throw new SimApiException(code, message);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 检测条件,根据条件返回报错 如果condition是ture报错
|
||||
/// </summary>
|
||||
/// <param name="condition">检测条件</param>
|
||||
/// <param name="code">错误代码</param>
|
||||
/// <param name="message">错误描述</param>
|
||||
public static void ErrorWhen([DoesNotReturnIf(true)] bool condition, int code = 400,
|
||||
string message = "")
|
||||
{
|
||||
if (condition)
|
||||
{
|
||||
Error(code, message);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 检测条件,根据条件返回报错 如果condition是ture报错
|
||||
/// </summary>
|
||||
/// <param name="condition">检测条件</param>
|
||||
/// <param name="code">错误代码</param>
|
||||
/// <param name="message">错误描述</param>
|
||||
public static void ErrorWhenTrue([DoesNotReturnIf(true)] bool condition, int code = 400,
|
||||
string message = "")
|
||||
{
|
||||
ErrorWhen(condition, code, message);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 如果condition是false 报错
|
||||
/// </summary>
|
||||
/// <param name="condition"></param>
|
||||
/// <param name="code"></param>
|
||||
/// <param name="message"></param>
|
||||
public static void ErrorWhenFalse([DoesNotReturnIf(false)] bool condition, int code = 400,
|
||||
string message = "")
|
||||
{
|
||||
ErrorWhen(!condition, code, message);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 检测给定的变量是否为NUll
|
||||
/// </summary>
|
||||
/// <param name="condition">检测条件</param>
|
||||
/// <param name="code">错误代码</param>
|
||||
/// <param name="message">错误描述</param>
|
||||
public static void ErrorWhenNull([NotNull] object? condition, int code = 404,
|
||||
string message = "请求的资源不存在")
|
||||
{
|
||||
ErrorWhen(condition == null, code, message);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 检测给定的泛型变量是否为Null(提供更精确的编译器 null 流分析)
|
||||
/// </summary>
|
||||
/// <param name="condition">检测条件</param>
|
||||
/// <param name="code">错误代码</param>
|
||||
/// <param name="message">错误描述</param>
|
||||
public static void ErrorWhenNull<T>([NotNull] T? condition, int code = 404,
|
||||
string message = "请求的资源不存在") where T : class
|
||||
{
|
||||
ErrorWhen(condition == null, code, message);
|
||||
}
|
||||
}
|
||||
@@ -17,6 +17,14 @@ public class SimApiHttpClient(string? appId, string appKey, bool debug = false)
|
||||
public string? AppIdName { get; init; } = "appId";
|
||||
public string[] SignFields { get; init; } = [];
|
||||
|
||||
/// <summary>
|
||||
/// 发起签名请求
|
||||
/// </summary>
|
||||
/// <param name="url"></param>
|
||||
/// <param name="body"></param>
|
||||
/// <param name="queries"></param>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <returns></returns>
|
||||
public T? SignQuery<T>(string url, object? body = null, Dictionary<string, string>? queries = null)
|
||||
{
|
||||
url = Server + url;
|
||||
@@ -40,6 +48,13 @@ public class SimApiHttpClient(string? appId, string appKey, bool debug = false)
|
||||
return Query<T>(path, body);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 发起AES加密请求
|
||||
/// </summary>
|
||||
/// <param name="url"></param>
|
||||
/// <param name="body"></param>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <returns></returns>
|
||||
public T? AesQuery<T>(string url, object body)
|
||||
{
|
||||
url = Server + url;
|
||||
@@ -55,6 +70,14 @@ public class SimApiHttpClient(string? appId, string appKey, bool debug = false)
|
||||
return Query<T>(url, req);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 发起AES加密以及签名请求
|
||||
/// </summary>
|
||||
/// <param name="url"></param>
|
||||
/// <param name="body"></param>
|
||||
/// <param name="queries"></param>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <returns></returns>
|
||||
public T? AesSignQuery<T>(string url, object body, Dictionary<string, string>? queries = null)
|
||||
{
|
||||
var req = new SimApiOneFieldRequest<string>
|
||||
@@ -64,6 +87,14 @@ public class SimApiHttpClient(string? appId, string appKey, bool debug = false)
|
||||
return SignQuery<T>(url, req, queries);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 发起请求
|
||||
/// </summary>
|
||||
/// <param name="url"></param>
|
||||
/// <param name="req"></param>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <returns></returns>
|
||||
/// <exception cref="SimApiException"></exception>
|
||||
private T? Query<T>(string url, object? req)
|
||||
{
|
||||
var http = new HttpClient();
|
||||
|
||||
Reference in New Issue
Block a user