通过简单的方式构建一个优秀的 API 服务(基于 express、@leizm/web 等)。
一个优秀的 API 必须要有优秀的文档、较完整的测试,同时便于开发部署与联调。在文档方面,最大的问题在于,随着 API 的发展需要找人同步更新文档。有个更好的方案是不脱离代码自更新文档。
通过 ERest,你可以在定义 API 的同时,完成参数模型的定义、API格式的定义,同时生成便于写 API 测试的脚手架,像调用本地方法一样写 API 测试,并自动完成 API 文档的生成(包括示例数据),同时生成 Swagger、Postman、基于 axios 的 js-sdk(更多功能支持自定义)。
使用 (generator-erest)[https://github.com/yourtion/node-generator-erest] 帮助你快速生成一个 API 项目框架。
$ npm install erest --save
$ npm install generator-erest -g
# Express
$ yo erest:express
# @leizm/web
$ yo erest:lei-web
'use strict';
const API = require('erest').default;
// API info for document
const INFO = {
title: 'erest-demo',
description: 'Easy to write, easy to test, easy to generate document.',
version: new Date(),
host: 'http://127.0.0.1:3000',
basePath: '/api',
};
// API group info
const GROUPS = {
Index: '首页',
};
// Init API
const apiService = new API({
info: INFO,
groups: GROUPS,
});
apiService.api.get('/index')
.group('Index')
.title('Test api')
.register((req, res) => {
res.end('Hello, API Framework Index');
});
const express = require('express');
const app = express();
const router = new express.Router();
app.use('/api', router);
// bing express router
apiService.bindRouter(router, apiService.checkerExpress);
app.listen(3000, function () {
console.log('erest-demo listening started');
});