import icsChromelyRequest from '@icreate/ics-chromely-js-sdk'
icsChromelyRequest.errorFn = (response) => {
console.log(response, 'error')
Message({
message: response.message || 'Error',
type: 'error',
duration: 5 1000
})
}
注意:由于多个sdk包会引用此包,故错误处理应该在主应用使用,而不是在sdk包中使用,为保证多个sdk使用的为同一个类的引用,在sdk打包时应去掉此包的依赖,在rollup.config.ts
中添加以下配置,其余打包工具方法请自行查找
external: ['@icreate/ics-chromely-js-sdk']
icsChromelyRequest.command
icsChromelyRequest.command(opts: { url: string; data?: any }): void
icsChromelyRequest.function
icsChromelyRequest.function(opts: { url: string; method?: 'POST' | 'GET'; data?: any })
注意:参数需要根据C#文件来定义,以下面的C#文件为例, url为RouteKey关键字对应值;request.Parameters["key"]
对应的则为GET方法,且参数为key;_jsonSerializer.Deserialize<CacheModel>(request.PostData.ToString())
对应的则为POST方法,参数为CacheModel对应的数据类型。
{
/// <summary>
/// Memory Caching Controller
/// </summary>
[ControllerProperty(Name = "MemoryCachingController")]
public class MemoryCachingController : IcsChromelyController
{
private readonly IJsonSerializer _jsonSerializer;
private readonly IMemoryCache _memoryCache;
/// <summary>
/// 构造函数
/// </summary>
public MemoryCachingController(IJsonSerializer jsonSerializer, IMemoryCache memoryCache)
{
_jsonSerializer = jsonSerializer;
_memoryCache = memoryCache;
}
/// <summary>
/// 设置缓存(POST)
/// </summary>
/// <param name="queryParameters">查询参数</param>
[RequestAction(RouteKey = "Caching/Memory/Set")]
public IIcsChromelyResponse Set(IIcsChromelyRequest request)
{
try
{
Check.NotNull(request.PostData, "缓存对象");
var cacheModel = _jsonSerializer.Deserialize<CacheModel>(request.PostData.ToString());
_memoryCache.Set(cacheModel.Key, cacheModel.Value);
return Success("Ok");
}
catch (Exception ex)
{
return InternalError(ex.Message);
}
}
/// <summary>
/// 获取缓存(GET)
/// </summary>
/// <param name="queryParameters">查询参数</param>
[RequestAction(RouteKey = "Caching/Memory/Get")]
public IIcsChromelyResponse Info(IIcsChromelyRequest request)
{
try
{
if (!request.Parameters.ContainsKey("key"))
throw new ArgumentNullException("key");
string key = request.Parameters["key"];
Check.NotNull(key, "缓存键");
string value = _memoryCache.Get<string>(key);
return Success(value);
}
catch (Exception ex)
{
return InternalError(ex.Message);
}
}
/// <summary>
/// 删除缓存(GET)
/// </summary>
/// <param name="queryParameters">查询参数</param>
[RequestAction(RouteKey = "Caching/Memory/Remove")]
public IIcsChromelyResponse Remove(IIcsChromelyRequest request)
{
try
{
if (!request.Parameters.ContainsKey("key"))
throw new ArgumentNullException("key");
string key = request.Parameters["key"];
Check.NotNull(key, "缓存键");
_memoryCache.Remove(key);
return Success("ok");
}
catch (Exception ex)
{
return InternalError(ex.Message);
}
}
}
}