crazytaxi824 / APIJSON

go-APIJSON
13 stars 1 forks source link

Go 版 APIJSON 目前解析 JSON 没有大的问题了,只是还缺转 SQL 的方法, 我刚刚改了下源码,然后初步实现了一个能用的,哈哈。 #2

Open TommyLemon opened 5 years ago

TommyLemon commented 5 years ago

Go 版 APIJSON 目前解析 JSON 没有大的问题了,只是还缺转 SQL 的方法, 我刚刚改了下源码,然后初步实现了一个能用的,哈哈。

main.go UU9MYOG5LL@6UIOK~$O}9}Y

func main() {
    log.SetFlags(log.Lshortfile)

    s := `{
"Person":{
},
  "[]": {
    "page":2,
    "count":10,
    "join": "&/User/id@,</Comment/momentId@",
    "Moment":{
        "@column":"id,date,userId",
        "id":12
      },
    "User":{
      "id@":"/Moment/userId",
      "@column":"id,name"
    }
  }
}`
    r, err := action.ParseJsonRequest([]byte(s))
    if err != nil {
        log.Println(err)
        return
    }

    var tn string
    tn, err = action.ParseTableName(r)
    if err != nil {
        log.Println(err)
        return
    }

    //var t string
    //t, err = action.ParseReqType(r, "get")
    //if err != nil {
    //  log.Println(err)
    //  return
    //}

    var sql string
    sql, err = action.ParseSQL(r, "head", tn)
    if err != nil {
        log.Println(err)
        return
    }
    log.Println(sql)

}

action/parser_sql.go OV $A`301CFXP0%AL%GN3K8

package action

import "errors"

// TODO 根据不同请求类型来实现不同业务
func ParseSQL(reqMap map[string]interface{}, reqType string, tableName string) (string, error) {
    switch reqType {
    case "get":
        //普通获取数据
        return "SELECT * FROM " + tableName, nil
    case "head":
        //普通获取数量
        return "SELECT count(*) FROM " + tableName, nil
    case "gets":
        //安全/私密获取数据
    case "heads":
        //安全/私密获取数量
    case "post":
        //新增数据
    case "put":
        //修改数据,
        //只修改所传的字段
    case "delete":
        //删除数据
    }
    return "", errors.New("parseSQL  No method matched " + reqType +  "!")
}
wangwei518 commented 4 years ago

大概也改了下,demo本身可用,但功能还差的远。哪个语言哪个项目实现的比较完全,有推荐么?

chennqqi commented 4 years ago

老哥继续加油后啊,感觉离企业能用、好用还有距离。文档、示例都缺。期待你正式release

TommyLemon commented 4 years ago

大概也改了下,demo本身可用,但功能还差的远。哪个语言哪个项目实现的比较完全,有推荐么?

Java >> C# > Python > Node.ts > PHP https://github.com/APIJSON/APIJSON#%E7%94%9F%E6%80%81%E9%A1%B9%E7%9B%AE

TommyLemon commented 11 months ago

@wangwei518 @chennqqi Java > Go(新) > C# > PHP > Python > Node.ts https://github.com/Tencent/APIJSON#%E7%94%9F%E6%80%81%E9%A1%B9%E7%9B%AE