123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199 |
- package crud
- import (
- "git.nspix.com/golang/rest/orm/schema"
- "git.nspix.com/golang/rest/scenario"
- "strings"
- )
- func (crud *CRUD) generateParams(e *Entity, scenario string) string {
- var sb strings.Builder
- schemas := schema.VisibleField(e.Module, e.stmt.Table, scenario)
- sb.WriteString("| 参数名称 | 参数类型 | 参数说明 |")
- sb.WriteByte('\n')
- sb.WriteString("| -------- | ------- | -------- |")
- sb.WriteByte('\n')
- for _, sc := range schemas {
- sb.WriteByte('|')
- sb.WriteString(sc.Column)
- sb.WriteByte('|')
- sb.WriteString(sc.Type)
- sb.WriteByte('|')
- sb.WriteString(sc.Label)
- sb.WriteByte('|')
- sb.WriteByte('\n')
- }
- return sb.String()
- }
- func (crud *CRUD) generateArgs(schemas []*schema.Schema) string {
- var sb strings.Builder
- sb.WriteString("| 参数名称 | 参数类型 | 参数说明 |")
- sb.WriteByte('\n')
- sb.WriteString("| -------- | ------- | -------- |")
- sb.WriteByte('\n')
- for _, sc := range schemas {
- sb.WriteByte('|')
- sb.WriteString(sc.Column)
- sb.WriteByte('|')
- sb.WriteString(sc.Type)
- sb.WriteByte('|')
- sb.WriteString(sc.Label)
- sb.WriteByte('|')
- sb.WriteByte('\n')
- }
- return sb.String()
- }
- func (crud *CRUD) generateDoc(e *Entity) []byte {
- var sb strings.Builder
- sb.WriteString("")
- sb.WriteString("# " + e.naming.label + "接口")
- sb.WriteByte('\n')
- sb.WriteByte('\n')
- if e.hasScenarios(ScenarioList) {
- sb.WriteString("## 获取" + e.naming.label + "列表")
- sb.WriteByte('\n')
- sb.WriteString("> 接口用于搜索" + e.naming.label + "列表数据")
- sb.WriteByte('\n')
- sb.WriteByte('\n')
- sb.WriteString("**请求方法** ")
- sb.WriteString("GET")
- sb.WriteByte('\n')
- sb.WriteByte('\n')
- sb.WriteString("**请求地址** ")
- sb.WriteString(e.Urls[ScenarioList])
- sb.WriteByte('\n')
- sb.WriteString("### 请求参数")
- sb.WriteByte('\n')
- sb.WriteString(crud.generateParams(e, scenario.Search))
- sb.WriteByte('\n')
- sb.WriteString("### 返回参数")
- sb.WriteByte('\n')
- sb.WriteString(crud.generateArgs([]*schema.Schema{
- {Column: "errno", Type: "integer", Label: "错误代码,为0表示成功,否则是失败"},
- {Column: "errmsg", Type: "string", Label: "错误消息"},
- {Column: "result", Type: "array", Label: "返回" + e.naming.label + "对象数据"},
- }))
- sb.WriteByte('\n')
- sb.WriteString("---------\n")
- sb.WriteByte('\n')
- sb.WriteByte('\n')
- sb.WriteByte('\n')
- }
- if e.hasScenarios(ScenarioCreate) {
- sb.WriteString("## 创建" + e.naming.label)
- sb.WriteByte('\n')
- sb.WriteString("> 接口用于创建" + e.naming.label)
- sb.WriteByte('\n')
- sb.WriteByte('\n')
- sb.WriteString("**请求方法** ")
- sb.WriteString("POST")
- sb.WriteByte('\n')
- sb.WriteByte('\n')
- sb.WriteString("**请求地址** ")
- sb.WriteString(e.Urls[ScenarioCreate])
- sb.WriteByte('\n')
- sb.WriteString("### 请求参数")
- sb.WriteByte('\n')
- sb.WriteString(crud.generateParams(e, scenario.Create))
- sb.WriteByte('\n')
- sb.WriteString("### 返回数据")
- sb.WriteByte('\n')
- sb.WriteString(crud.generateArgs([]*schema.Schema{
- {Column: "errno", Type: "integer", Label: "错误代码,为0表示成功,否则是失败"},
- {Column: "errmsg", Type: "string", Label: "错误消息"},
- {Column: "result", Type: "object", Label: "成功返回创建的ID和状态信息"},
- }))
- sb.WriteByte('\n')
- sb.WriteString("---------\n")
- sb.WriteByte('\n')
- sb.WriteByte('\n')
- sb.WriteByte('\n')
- }
- if e.hasScenarios(ScenarioUpdate) {
- sb.WriteString("## 更新" + e.naming.label)
- sb.WriteByte('\n')
- sb.WriteString("> 接口用于更新" + e.naming.label)
- sb.WriteByte('\n')
- sb.WriteByte('\n')
- sb.WriteString("**请求方法** ")
- sb.WriteString("PUT")
- sb.WriteByte('\n')
- sb.WriteByte('\n')
- sb.WriteString("**请求地址** ")
- sb.WriteString(e.Urls[ScenarioUpdate])
- sb.WriteByte('\n')
- sb.WriteString("### 请求参数")
- sb.WriteByte('\n')
- sb.WriteString(crud.generateParams(e, scenario.Update))
- sb.WriteByte('\n')
- sb.WriteString("### 返回数据")
- sb.WriteByte('\n')
- sb.WriteString(crud.generateArgs([]*schema.Schema{
- {Column: "errno", Type: "integer", Label: "错误代码,为0表示成功,否则是失败"},
- {Column: "errmsg", Type: "string", Label: "错误消息"},
- {Column: "result", Type: "object", Label: "成功返回更新的ID和状态信息"},
- }))
- sb.WriteByte('\n')
- sb.WriteString("---------\n")
- sb.WriteByte('\n')
- sb.WriteByte('\n')
- sb.WriteByte('\n')
- }
- if e.hasScenarios(ScenarioDelete) {
- sb.WriteString("## 删除" + e.naming.label)
- sb.WriteByte('\n')
- sb.WriteString("> 接口用于删除" + e.naming.label)
- sb.WriteByte('\n')
- sb.WriteByte('\n')
- sb.WriteString("**请求方法** ")
- sb.WriteString("DELETE")
- sb.WriteByte('\n')
- sb.WriteByte('\n')
- sb.WriteString("**请求地址** ")
- sb.WriteString(e.Urls[ScenarioDelete])
- sb.WriteByte('\n')
- sb.WriteString("### 返回数据")
- sb.WriteByte('\n')
- sb.WriteString(crud.generateArgs([]*schema.Schema{
- {Column: "errno", Type: "integer", Label: "错误代码,为0表示成功,否则是失败"},
- {Column: "errmsg", Type: "string", Label: "错误消息"},
- {Column: "result", Type: "object", Label: "成功返回删除的ID和状态信息"},
- }))
- sb.WriteByte('\n')
- sb.WriteString("---------\n")
- }
- if e.hasScenarios(ScenarioView) {
- sb.WriteString("## 获取" + e.naming.label + "详情")
- sb.WriteByte('\n')
- sb.WriteString("> 接口用于获取" + e.naming.label + "详情")
- sb.WriteByte('\n')
- sb.WriteByte('\n')
- sb.WriteString("**请求方法** ")
- sb.WriteString("GET")
- sb.WriteByte('\n')
- sb.WriteByte('\n')
- sb.WriteString("**请求地址** ")
- sb.WriteString(e.Urls[ScenarioDelete])
- sb.WriteByte('\n')
- sb.WriteString("**请求参数** ")
- sb.WriteByte('\n')
- sb.WriteByte('\n')
- sb.WriteString(crud.generateArgs([]*schema.Schema{
- {Column: "format", Type: "string", Label: "是否格式化输出,如果值为true,会对数据进行格式化输出,否则输出原始数据"},
- }))
- sb.WriteByte('\n')
- sb.WriteString("### 返回数据")
- sb.WriteByte('\n')
- sb.WriteString(crud.generateParams(e, scenario.View))
- sb.WriteByte('\n')
- sb.WriteString("---------\n")
- }
- return []byte(sb.String())
- }
|