1.0.3 • Published 2 years ago

storage-sdk-js v1.0.3

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

1 、下载与安装

环境依赖

Node:用于下载和安装node编译运行环境,请前往node官网进行下载

安装SDK

执行以下命令安装Storage JS SDK:

// 安装前置模块 
npm install axios crypto-js
// 安装加密SDK
npm install storage-sdk-js

2、开始使用

下面为您演示使用Storage JS SDK完成一个基础操作,如创建一条数据。

import create from "storage-sdk-js"

const http = create({
  baseURL: "http://dev-gw.sunac.com.cn",
  crypto: {
    type: "aes",
    key: 'kkkkkkkkkkkkkkkk',
    cfg: {
      iv: "kkkkkkkkkkkkkkkk",
    },
  },
  signQuery: {
    ak: "ccccc",
    sk: "bbbbb",
  },
});
http.post("/storage/api/v1/tenant/insertOne?tenantId=tenantId_3001",
          {
            tenantId: "tenantId_3001",
            tempId: "tempId-01",
            data: {
              name: "ssss",
              phone: "15811388293",
            },
          }
         )
.then((res) => {
  console.log(res);
});

3、初始化http对象

3.1 初始化create对象参数说明

参数说明类型默认值
crypto加密对象object-
unEncryt禁用加密,在create 实例传入将覆盖至所有接口,单个接口使用,在config添加该属性中也生效booleanfalase
signQuery签名参数配置object-
……其余参数均和 【axios】 配置相同--

3.2 crypto参数说明

参数类型是否必填针对加密对象
typeaes|des |rsa_PKCS1all
keystring 加密key值all
cfg调整aes、des的加密模式、填充模式等等具体可以查看文档 【crypto-js】, 目前仅支持mode:CBC padding: Pkcs7,其中iv参数非必填项默认为""。ase|ase

3.3 signQuery参数说明

参数说明类型默认值
sksercetKeystring-
akaccessKeystring-
exp单位:秒。exp秒后过期number900

4、实例方法

拦截器
// 请求拦截器
http.interceptors.request.use((config) => {
   return config;
});

// 响应拦截器
http.interceptors.response.use((res) => {
   // 自定义错误
   if (res.code !== 200) {
      return Promise.reject(new Error("Request Error"));
   };

   return res;
}, (error) => {
   const { message, response, config } = error;
   return Promise.reject(error);
});
请求
http.request(config)

http.get(url[, data[, config]])

http.post(url[, data[, config]])

http.put(url[, data[, config]])

http.delete(url[, config])

http.head(url[, config])

http.options(url[, config])

http.connect(url[, config])

5、Webpack5 注意事项 -- 废弃

需要安装对接的模块,支持node-rsa运行

const Webpack = require('webpack')
module.exports = {
  ...
  resolve: {
    fallback: {
      // 添加垫片
      "assert": require.resolve("assert"),
      "buffer": require.resolve("buffer"),
      "stream": require.resolve("stream-browserify"),
      "constants": require.resolve("constants-browserify"),
      "crypto": require.resolve("crypto-browserify")
    }
  },
  plugins: [
    new Webpack.ProvidePlugin({
        Buffer: ['buffer', 'Buffer']
    }),
    new Webpack.ProvidePlugin({
        process: 'process/browser',
    }),
  ]
};