@icreate/ics-chromely-js-sdk
TypeScript icon, indicating that this package has built-in type declarations

0.0.8 • Public • Published

引入

import icsChromelyRequest from '@icreate/ics-chromely-js-sdk'

对错误做统一处理 errorFn

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);
            }
        }
    }
}

Readme

Keywords

none

Package Sidebar

Install

npm i @icreate/ics-chromely-js-sdk

Weekly Downloads

79

Version

0.0.8

License

MIT

Unpacked Size

76.8 kB

Total Files

16

Last publish

Collaborators

  • xyzhang59
  • liqing1014
  • zhangmenglei
  • zer001
  • jiangbing
  • zhu_enrui
  • flown
  • liuzk
  • hanmeng_mon
  • yujian01
  • z5y
  • dingwei1
  • restlife1994
  • c_zhu
  • wenbei