1.12.3.2.4 自定义应用开发-后端开发

优质
小牛编辑
132浏览
2023-12-01

Web 第三方应用开发-后端开发

更新时间:2018-07-03 22:06:11

概述

本章讲解:非托管应用如何创建自己的后端服务,以及如何通过 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网关