step4.后端开发
更新时间:2019-01-24 10:43:15
概述
本章讲解:非托管应用如何创建自己的后端服务,以及如何通过 AppKey & AppSecret 调用平台服务与插件,本节以Nodejs Server为实例讲解,主要使用了:工程框架
Egg.js
和 阿里云API网关aliyun-api-gateway
。
工程框架
npm i egg-init -g
阿里云API网关(SDK)
npm install aliyun-api-gateway
或
cnpm install aliyun-api-gateway
编写服务
添加路由router.js
'use strict';
module.exports = app => {
app.get('/apigw.iot', 'apigw.get');
app.post('/apigw.iot', 'apigw.post');
};
/apigw.iot
平台规范,后端接收前端服务请求的网关路由,请务添加
路由实现apigw.js
'use strict';
const uuidv5 = require('uuid/v5');
const Client = require('aliyun-api-gateway').Client;
module.exports = app => {
class AppController extends app.Controller {
* get() {
const { ctx, service } = this,
query = ctx.query || {};
yield this.common(query, 'get');
}
* post() {
const { ctx, service } = this,
query = ctx.request.body || {};
yield this.common(query, 'post');
}
* common(query, method) {
const { ctx, service } = this;
try {
const { url, apiVer, params } = query,
client = new Client('YOUR_APP_KEY', 'YOUR_APP_SECRET');
const result = yield client[method](url, {
data: {
id: uuidv5(ctx.url, uuidv5.URL),
version: '1.0',
request: {
apiVer: apiVer
},
params: params || {}
}
});
ctx.body = result;
} catch (e) {
ctx.body = {
code: e.code || 440,
success: 'error',
data: null,
message: e.message,
description: 'unknow'
};
}
}
}
return AppController;
};
Client 的参数
YOUR_APP_KEY
&YOUR_APP_SECRET
替换为您的真实 AppKey & AppSecret。请在
开发环境
和正式环境
正确的使用 Key。
部署
非托管应用需要把您的应用的部署在
自己的服务器
。至此,您的后端系统调用平台服务已经开发完成。
备注:
- 其它语言
API网关
使用请参考:开发资源 -> 阿里云 API网关