@forchange/ams

0.2.1 • Public • Published

ams

api 和 mock 一体化服务

特点

  • 定义元数据
  • 生成接口实例
  • 可视化展示

快速开始

安装 node 环境

$ brew install node

安装 ams 服务

$ npm install -g @forchange/ams

初始化

$ ams init
$ cd <输入的文件名>

安装 mock 服务

$ npm install @forchange/mock --save

启动

$ ams

现在,访问 http://0.0.0.0:3839 查看

术语描述

名 称 解 释
model 元数据
api 数据整合配置
data 数据
traverse 复杂数据数量配置
rules 自定义规则
flow 数据联动标识

如何使用

示例目录结构

ams
├── api                          // api 数据
│   └── welcome
│       └── forchange#get.ts
├── model                        // model 数据
│   └── welcome
│       └── forchange#get.ts
├── config.json                  // 模块配置文件
└── .amsrc                       // 配置文件

接口定义

规则

  • 一个接口一个文件
  • 文件路径即路由和方法

示例

路由:/ambassador/courses/:id/:pay 方法:GET

ams
├── api
│   └── ambassador
│       └── courses
│           └── :id
│               └── :pay#get.js

编写 api

新建

$ ams create <文件路径>  [-m <method>] -api

参数列表

参 数 解 释 类型 示 例
title 接口名 string '这是一个示例标题'
description 接口描述 string '这是对示例标题对一个解释'
model 模 型 boolean true
data 数 据 object
traverse 定义 model 中复杂数据的数量 object
rules 内部规则 object
flow 数据联动 [object]

title

api 接口标题

description

api 接口描述

data

api 中定义的数据,将会覆盖 model 中的 data 数据定义 👉 参考

对于 data 字段, 我们在定义式不支持复杂的函数形式

traverse

定义 model 中复杂数据的数量

rules

内部规则 👉 参考

flow

接口联动 👉 参考

示例

export default {
  title: "这是一个标题",

  description: "welcome to use ams",

  data: {
    welcome: {
      userInfo: {
        __rule__: "@list",
        params: {
          payload: {
              name: "@name",
          }
        }
      }
    }
  }

  traverse: {
    "data.welcome.userInfo.params": {
      number: 3
    }
  },

  rules: {
    a: function() {
      return 1;
    }
  },

  flow: [
    {
      route: "/aaa/bb/cc",
      method: "post",
      data: {
        forchange: "welcome"
      }
    }
  ]
};

编写 model

新建

$ ams create <文件路径> -model

参数

参 数 解 释 类 型
namespace 模块名
Request 配置请求参数 interface
Response 配置相应参数 interface

data 定义

数据定义 👉 参考

注解说明

我们通过 namespace 字段来定义模块 我们将通过注释的方式来对字段进行注解 RequestResponse 两个字段都将原封不动的进行数据展示 你可以通过注释获取每个字段所代表的含义

示例

namespace Forchange {
  interface Request {
    header: {
      // header 参数
    };
    query: {
      // query 参数
    };
  }

  interface Response {
    message: "hello forchange"; // message 字段(来自 model 中 data 字段
  }
}

即该接口模块名为 Forchange

编写描述信息

编写模块标题

定义

我们将 model 文件中 namespace 定义的字段视作 模块。(如果没有 model 文件,我们会将路径对第一层 path 视作模块名) 你可以在 config.json 文件中的 model 字段下对 模块 进行释义。

示例

{
  "model": {
    "Welcome": "这是welcome模块"
  }
}

配置 .amsrc

如果你不需要配置文件,可跳过。

新建

在当前文件夹下新建 .amsrc 文件

参数

参 数 解 释 示 例
host ip '0.0.0.0'
port ams 端口 3839
mport mock 端口 3838

示例

module.exports = {
  host: "0.0.0.0",
  port: 3839,
  mport: 3838
};

命令

常用指令

Usage
  create <path> [-m <method>] [-api] [-model]
      path           路径
      -m, --method   method of create file
      -api           create api file
      -model         create model file

  init               快速开始

  -h, --host         host of ams
  -p, --port         port of ams
  -l, --label        label of ams
  -m, --mport       port of mock
  -c, --config       use config of .amsrc

Options:
  --help             Show help
  -v, --version      Show version info

Examples:
  ams init
  ams

启动 mock 服务

$ ams [-c <.amsrc path>]

新建文件

同时新建 api 和 model 文件

$ ams create <path> [-m <method>]

新建 api 文件

$ ams create <path> [-m <method>] -api

新建 model 文件

$ ams create <path> [-m <method>] -model

Readme

Keywords

none

Package Sidebar

Install

npm i @forchange/ams

Weekly Downloads

0

Version

0.2.1

License

ISC

Unpacked Size

12 MB

Total Files

20

Last publish

Collaborators

  • chenle
  • tinypanda