api.go 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. package api
  2. import (
  3. "dbview/service/internal/common/databases/meta"
  4. )
  5. // 请求与响应结构(放在 api 包以便复用)
  6. type GetRootRequest struct {
  7. ConnID string `json:"connId" binding:"required"`
  8. // ConnInfo 用于信息打印,可选
  9. ConnInfo string `json:"connInfo"`
  10. Page int `json:"page"`
  11. PageSize int `json:"pageSize"`
  12. Fetch bool `json:"fetch"` // 是否获取具体数据,false=只返回类型与数量
  13. }
  14. type GetChildrenRequest struct {
  15. ConnID string `json:"connId" binding:"required"`
  16. // ConnInfo 用于信息打印,可选
  17. ConnInfo string `json:"connInfo"`
  18. // Path 用于结构化定位父对象,从根到父对象的完整层级
  19. Path []meta.ObjectPathEntry `json:"path" binding:"required"`
  20. Type string `json:"type"`
  21. Page int `json:"page"`
  22. PageSize int `json:"pageSize"`
  23. Fetch bool `json:"fetch"` // 是否获取具体数据,false=只返回类型与数量
  24. }
  25. type PagedResponse struct {
  26. Success bool `json:"success"`
  27. Total int64 `json:"total"`
  28. Data interface{} `json:"data"`
  29. Message string `json:"message,omitempty"`
  30. }
  31. type ObjectResponse struct {
  32. Success bool `json:"success"`
  33. Data meta.GenericObject `json:"data"`
  34. Message string `json:"message,omitempty"`
  35. }
  36. // GetObjectRequest 用于 POST /metadata/object
  37. type GetObjectRequest struct {
  38. ConnID string `json:"connId" binding:"required"`
  39. // ConnInfo 用于信息打印,可选
  40. ConnInfo string `json:"connInfo"`
  41. // Path 表示从根到目标对象的结构化路径,详见 meta.ObjectPathEntry
  42. Path []meta.ObjectPathEntry `json:"path" binding:"required"`
  43. Fetch bool `json:"fetch"` // 是否获取具体数据(如列/索引),false=只返回基础元信息
  44. }
  45. // CreateTemplateRequest 用于 POST /metadata/create/template
  46. type CreateTemplateRequest struct {
  47. ConnID string `json:"connId" binding:"required"`
  48. // ConnInfo 用于信息打印,可选
  49. ConnInfo string `json:"connInfo"`
  50. ObjectType string `json:"objectType" binding:"required"` // 要创建的对象类型,如 table/database/index
  51. ParentName string `json:"parentName"` // 可选的父上下文(例如创建表时为数据库名)
  52. }
  53. // CreateObjectRequest 用于 POST /metadata/object/create
  54. type CreateObjectRequest struct {
  55. ConnID string `json:"connId" binding:"required"`
  56. // ConnInfo 用于信息打印,可选
  57. ConnInfo string `json:"connInfo"`
  58. ObjectType string `json:"objectType" binding:"required"`
  59. ParentName string `json:"parentName,omitempty"`
  60. Properties map[string]interface{} `json:"properties" binding:"required"`
  61. Execute bool `json:"execute,omitempty"`
  62. Options map[string]interface{} `json:"options,omitempty"`
  63. }
  64. // UpdateTemplateRequest 用于 POST /database/metadata/update/template
  65. type UpdateTemplateRequest struct {
  66. ConnID string `json:"connId" binding:"required"`
  67. // ConnInfo 用于信息打印,可选
  68. ConnInfo string `json:"connInfo"`
  69. Path meta.ObjectPath `json:"path" binding:"required"` // 目标对象的路径
  70. }
  71. // UpdateObjectRequest 用于 POST /database/metadata/object/update
  72. type UpdateObjectRequest struct {
  73. ConnID string `json:"connId" binding:"required"`
  74. // ConnInfo 用于信息打印,可选
  75. ConnInfo string `json:"connInfo"`
  76. UpdateRequest meta.UpdateObjectRequest `json:"updateRequest" binding:"required"`
  77. }
  78. // DeleteTemplateRequest 用于 POST /database/metadata/delete/template
  79. type DeleteTemplateRequest struct {
  80. ConnID string `json:"connId" binding:"required"`
  81. // ConnInfo 用于信息打印,可选
  82. ConnInfo string `json:"connInfo"`
  83. Path meta.ObjectPath `json:"path" binding:"required"` // 目标对象的路径
  84. }
  85. // GetMetadataInfoRequest 用于 POST /database/metadata/info
  86. type GetMetadataInfoRequest struct {
  87. ConnID string `json:"connId" binding:"required"`
  88. ConnInfo string `json:"connInfo"`
  89. }