Skip to content

字节跳动工程师开发的 APIJSON 的 Node 版后端实现,本仓库为副本,请给原仓库右上角点亮 ⭐️ Star

Notifications You must be signed in to change notification settings

APIJSON/APIJSON-Node

 
 

Repository files navigation

ApiJson Node版

A ApiJson Server build with Nest.js and TypeORM


起步

安装依赖

$ npm install

Database数据库配置

修改 ormconfig.js 参照 ormconfig.js.example

测试数据库为 apijson.sql, 如需体验可自行导入本地数据库测试

{ "type": "mysql", "host": "localhost", "port": 3306, "username": "", "password": "", "database": "", "entities": ["src/**/**.entity{.ts,.js}"], "synchronize": false } 

NPM 命令

  • npm run dev - 开发模式
  • npm start - 启动应用
  • npm run start:prod - 生产模式

启动应用

  • npm start
  • 健康检查 http://localhost:3000/test 正常情况下会返回 ok
  • 使用 pm2 可以直接 用 pm2 start ./pm2.config.json 启动

Swagger API 文档

This example repo uses the NestJS swagger module for API documentation. NestJS Swagger - www.swagger.io

使用文档

以下例子中 默认存在两张表(Comment, User),实际使用时,需要在添加对应的entity,在service中引入即可

查看当前可用的table 可访问 GET /table

  • 通用查询接口 POST /apijson/get
  • 通用新增接口 POST /apijson/add
  • 通用修改接口 POST /apijson/update

已经实现的操作符

  • 单条记录查询

    { "Comment": { "User": {} } }
  • []

    操作符名称: 列表查询

    例子:

     // 这里[]前的字符串将作为response的字段名 { "XXX[]": { "Comment": {} } }
  • #

    操作符名称: 别名

    例子:

    { "SingleComment#": { "Comment": {} } }
  • @column

    操作符名称: 字段筛选

    例子:

    { "User": { "@column": "role,nickname" } }
  • 联表查询

    例子:

    // 查询叫tony的User // 查询一条userId为User中id的Comment { "User": { "user": "tony" }, "Comment": { "userId@": "User/id" } }
    // 查询所有符合条件的comment 显示 第1页 每页2条 // (因为默认page = 1 count = 10 所以默认最多为10条) { "User": { "user": "tony" }, "msgList[]": { "Comment": { "userId@": "User/id" }, "count": 2, "page": 1 } } 
  • 综合例子

     { "userInfo#": { "User": { "user": "tony" } }, "testAlias#": { "msgList[]": { "Comment": { "userId@": "userInfo#/User/id", "@column": "comment" }, "count": 2, "page": 1 } } }

About

字节跳动工程师开发的 APIJSON 的 Node 版后端实现,本仓库为副本,请给原仓库右上角点亮 ⭐️ Star

Resources

Stars

Watchers

Forks

Languages

  • TypeScript 92.4%
  • PLpgSQL 7.4%
  • JavaScript 0.2%