V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
lpap123456
V2EX  ›  问与答

只需几行代码快速编写 crud 接口

  •  
  •   lpap123456 · 2021-03-17 18:19:09 +08:00 · 1347 次点击
    这是一个创建于 1372 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景

    随着互联网的快速发展,开发软件越来越讲究效率,无论是各种跨端框架如:electron uni-app,还是近期比较火热服务端的serverless,都是伴随着这个趋势而生。

    快速开发后台

    事实上后台在开发中存在大量的重复的工作,有些程序员甚至自嘲是crud(增删改查)开发者。cool 团队原先在开发软件的时候也碰到了类似的问题。刚好伴随着阿里巴巴团midway2.0的发布。它是一个既可以开发普通应用,又可以将应用发布打包发布部署为 serverless 。我们在此基础上封装了一个快速开发后台的框架cool-admin

    快速开发

    定义一个表

    /**
     * 商品
     */
    @EntityModel('demo_app_goods')
    export class DemoAppGoodsEntity extends BaseEntity {
    
        @Column({ comment: '标题' })
        title: string;
    
        @Column({ comment: '图片' })
        pic: string;
    
        @Column({ comment: '价格', type: 'decimal', precision: 5, scale: 2 })
        price: number;
    
    }
    
    

    编写接口

    import { Provide } from '@midwayjs/decorator';
    import { CoolController, BaseController } from 'midwayjs-cool-core';
    import { DemoAppGoodsEntity } from '../../entity/goods';
    
    /**
     * 商品
     */
    @Provide()
    @CoolController({
      api: ['add', 'delete', 'update', 'info', 'list', 'page'],
      entity: DemoAppGoodsEntity
    })
    export class DemoAppGoodsController extends BaseController {
      /**
       * 其他接口
       */
      @Get('/other')
      async other() {
        return this.ok('hello, cool-admin!!!');
      }
    }
    

    这样我们就完成了 6 个接口的编写,对应的接口如下:

    • POST /app/demo/goods/add 新增
    • POST /app/demo/goods/delete 删除
    • POST /app/demo/goods/update 更新
    • GET /app/demo/goods/info 单个信息
    • POST /app/demo/goods/list 列表信息
    • POST /app/demo/goods/page 分页查询(包含模糊查询、字段全匹配等)

    开源免费

    为了分享我们的成果,我们把它开源了,让广大开发者也能快速开发,专心业务。

    • 后端

    https://github.com/cool-team-official/cool-admin-midway

    https://gitee.com/cool-team-official/cool-admin-midway

    • 前端

    https://github.com/cool-team-official/cool-admin-vue

    https://gitee.com/cool-team-official/cool-admin-vue

    2 条回复    2021-03-18 16:08:22 +08:00
    fescover
        1
    fescover  
       2021-03-17 19:51:45 +08:00
    感谢开源
    lpap123456
        2
    lpap123456  
    OP
       2021-03-18 16:08:22 +08:00
    @fescover 好东西跟大家分享
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1000 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 21:09 · PVG 05:09 · LAX 13:09 · JFK 16:09
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.