注意:这种方式只适用于浏览器环境。
在 HTML 中通过 <script>
标签引入 JS 文件:
<script
src="mdclub-sdk.min.js"
integrity="sha256-lMwIYBCuWSCv75NytImCOK8Qm4dHGMa9P3ege0Pd7gU="
crossorigin="anonymous"
></script>
然后就可以通过全局变量 mdclubSDK
访问 SDK 了。
你可以先通过 mdclubSDK.defaults
对 SDK 进行一些设置:
// 设置 api 地址(可选,默认为 {当前域名}/api)
mdclubSDK.defaults.apiPath = 'https://example.com/api';
// 若浏览器不支持 patch, put, delete 请求,则需要将该选项设为 true(可选)
mdclubSDK.defaults.methodOverride = true;
// 设置全局回调函数(可选)
mdclubSDK.defaults.beforeSend = function () {};
mdclubSDK.defaults.success = function (response) {};
mdclubSDK.defaults.error = function (errMsg) {};
mdclubSDK.defaults.complete = function () {};
然后可以如下调用 SDK 中的方法:
mdclubSDK.QuestionApi.getList({ question_id: 11 })
.then((questions) => {
console.log(questions);
})
.catch((errMsg) => {
console.log(errMsg);
});
使用 npm
安装 SDK:
npm install mdclub-sdk-js --save
SDK 同时支持浏览器环境和小程序环境,你需要先根据使用环境设置适配器。
若在小程序中使用,需要设置成小程序适配器。支持微信小程序、支付宝小程序、钉钉小程序、百度小程序(注意:当前代码还未在小程序中进行过测试):
import defaults from 'mdclub-sdk-js/es/defaults';
import MiniProgramAdapter from 'mdclub-sdk-js/es/adapter/MiniProgramAdapter';
defaults.adapter = new MiniProgramAdapter();
若在浏览器中使用,设置成浏览器适配器:
import defaults from 'mdclub-sdk-js/es/defaults';
import BrowserAdapter from 'mdclub-sdk-js/es/adapter/BrowserAdapter';
defaults.adapter = new BrowserAdapter();
若你的项目中已经通过 npm 安装了 jQuery、axios 之类的库,则可以设置对应的适配器,SDK 将直接使用对应的库提供的 ajax 方法。下面是所有支持的适配器:
适配器 | 使用方法 | 说明 |
---|---|---|
AxiosAdapter |
import defaults from 'mdclub-sdk-js/es/defaults'; import AxiosAdapter from 'mdclub-sdk-js/es/adapter/AxiosAdapter'; defaults.adapter = new AxiosAdapter(); |
使用 axios 发送请求 |
BrowserAdapter |
import defaults from 'mdclub-sdk-js/es/defaults'; import BrowserAdapter from 'mdclub-sdk-js/es/adapter/BrowserAdapter'; defaults.adapter = new BrowserAdapter(); |
使用 mdui.jq 发送请求 |
FetchAdapter |
import defaults from 'mdclub-sdk-js/es/defaults'; import FetchAdapter from 'mdclub-sdk-js/es/adapter/FetchAdapter'; defaults.adapter = new FetchAdapter(); |
使用浏览器内置的 fetch 方法发送请求 |
JQueryAdapter |
import defaults from 'mdclub-sdk-js/es/defaults'; import JQueryAdapter from 'mdclub-sdk-js/es/adapter/JQueryAdapter'; defaults.adapter = new JQueryAdapter(); |
使用 jQuery 发送请求 |
MiniProgramAdapter |
import defaults from 'mdclub-sdk-js/es/defaults'; import MiniProgramAdapter from 'mdclub-sdk-js/es/adapter/MiniProgramAdapter'; defaults.adapter = new MiniProgramAdapter(); |
在小程序内使用 |
还可以选择对 SDK 进行一些全局设置,这些设置都是可选的。
import defaults from 'mdclub-sdk-js/es/defaults';
// 设置 api 地址,默认为 {当前域名}/api
defaults.apiPath = 'https://example.com/api';
// 若浏览器不支持 patch, put, delete 方法,则需要将该选项设为 true(可选)
defaults.methodOverride = true;
// 设置全局回调函数
defaults.beforeSend = () => {};
defaults.success = () => {};
defaults.error = () => {};
defaults.complete = () => {};
然后就可以调用 SDK 方法了
import QuestionApi from 'mdclub-sdk-js/es/QuestionApi';
QuestionApi.getList({ question_id: 11 })
.then((questions) => {
console.log(questions);
})
.catch((errMsg) => {
console.log(errMsg);
});
SDK 中的方法按 API 的功能分类到了不同模块中,具体如下表所列:
API 模块 | 说明 |
---|---|
AnswerApi |
回答相关 API |
ArticleApi |
文章相关 API |
CaptchaApi |
验证码相关 API |
CommentApi |
评论相关 API |
EmailApi |
邮件相关 API |
ImageApi |
图片相关 API |
NotificationApi |
通知相关 API |
OptionApi |
配置相关 API |
QuestionApi |
提问相关 API |
ReportApi |
举报相关 API |
StatsApi |
数据统计相关 API |
TokenApi |
身份验证相关 API |
TopicApi |
话题相关 API |
UserApi |
用户相关 API |
各个模块中所有的方法详细说明,请参见 SDK 文档 。
若通过 CDN 引入 SDK,可以这样访问指定模块的方法:
mdclubSDK.QuestionApi.getList().then((response) => {});
若在 ES6 模块化环境中使用 SDK,可以这样访问指定模块的方法:
import QuestionApi from 'mdclub-sdk-js/es/QuestionApi';
QuestionApi.getList().then((response) => {});
在 SDK 中,每一个错误代码都赋值给了一个常量。在开发中,你可以使用常量来代替错误代码,以便使你的代码拥有更好的可读性。
若通过 CDN 引入 SDK,可以这样访问错误代码常量:
// 以下对应错误代码 201001
mdclubSDK.errors.USER_NEED_LOGIN;
若在 ES6 模块化环境中使用 SDK,可以这样访问错误代码常量:
import errors from 'mdclub-sdk-js/es/errors';
// 以下对应错误代码 201001
errors.USER_NEED_LOGIN;
具体的常量和错误代码对应关系请 参见文档 。