山东大学软件工程项目实训-5 项目稿件 关于potato-comp。operation.json的内容物和使用说明草稿1

DevPort用于指定前后台的在开发模式下的绑定端口

例如这里是4000

那么前端request导出的base-host = "localhost:4000"

后端应用服务器也会listen4000

 

Api代表具体的接口和接口的实现

由于是面向中小型应用的 故只有两个子路由 分别是 Auth / Unauth ( /api/auth/, /api/unauth )

默认实现时 auth会获取token中的userID 并绑定到后续的controller中

unauth则不需要获取token中的userID 用于无需鉴权的场景

 

Auth/Unauth下的子条目代表的是具体的接口实现

Params是访问该接口需要携带的参数

Response则是该接口会返回的reponse-body

Program中可以定义这些接口需要进行的操作

在接口实现本身不复杂的情况下

可以把所有的实现都写在这里

如果实现较复杂 可以在Program中写一些这里被简化好的数据库查询语法糖

在此基础上完善你的代码

当然,Program不是必须要写的字段,如果你不喜欢这套语法,可以自己在生成项目的controller中实现 ( response, param也同样不是必须字段 但是提前声明这些可以最大限度的发挥前后端一体的生成效果 )

 

具体的Program语法是这样的:

每个数组元素都可以被视作一行/多行ts或一行单独的<mid>语句

包含几个预设变量

$Return代表该接口的response 给它赋值即可以声明产生的reponse-body

$Params 代表传给该接口的params

$UserID 代表在auth接口中被从token中解析出的userID

 

$变量在ts/<mid>语句中都可以被使用

但是在ts中 $变量等同于去除了开头的$符号的变量

如$user, 在ts中代表的就是一个名叫user的变量

在<mid>语句中 声明或使用都得带上$

 

$user => &User.FindOne|userID=$Params.userID

这代表 新产生了一个名叫$user的变量

使用形如 $<var> => <赋值语句>的方式声明变量

 

 

{

    "DevPort": 4000,

    "Api": {

        "Auth": {

            "Login": {

                "Params": "{userID: string, pwd: string}",

                "Response": "{done: boolean}",

                "Program": [

                    "# $user => &User.FindOne|userID=$Params.userID ",

                    " $Return = { done: $user && $user.pwd === $Params.pwd };"

                ]

            },

            "DeleteUser": {

                "Params": "{userID: string}",

                "Response": "{done: boolean}",

                "Program": [

                    "# &User.Delete|userID=$Params.userID ",

                    " $Return = { done: true };"

                ]

            },

            "InsertUser": {

                "Params": "{userID: string}",

                "Response": "{done: boolean}",

                "Program": [

                    "# &User.Insert|userID=$Params.userID ",

                    " $Return = { done: true };"

                ]

            }

        }

    }

}

  • #语句中可以包含赋值语句/数据库操作语句
  • $变量也可以是自己声明的 在#语句中可以作这样的声明
  • <mid>语句以#开头 前后都可以加上空格 <mid>语句会被编译为comp-token然后转化为具体的实现
  • 不以#开头的语句代表ts语句
  • $<var>代表的是接受预编译选项的变量
  • Program字段下包含一个数组,这些分开的语句会被简单编译后插入到实现中
  • 一份基本的operation模块长成这样
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值