feature: refactor api parse to g4 (#365)

* feature: refactor api parse to g4

* new g4 parser

* add CHANGE_LOG.MD

* refactor

* fix byte bug

* refactor

* optimized

* optimized

* revert

* update readme.md

* update readme.md

* update readme.md

* update readme.md

* remove no need

* fix java gen

* add upgrade

* resolve confilits

Co-authored-by: anqiansong <anqiansong@xiaoheiban.cn>
This commit is contained in:
kingxt
2021-01-11 15:10:51 +08:00
committed by GitHub
parent b0ccfb8eb4
commit ee19fb736b
88 changed files with 13641 additions and 2458 deletions

View File

@@ -9,8 +9,9 @@ import (
)
const bodyTagKey = "json"
const formTagKey = "form"
var definedKeys = []string{"json", "form", "path"}
var definedKeys = []string{bodyTagKey, formTagKey, "path"}
func (s Service) Routes() []Route {
var result []Route
@@ -45,6 +46,22 @@ func (m Member) IsOptional() bool {
return false
}
func (m Member) IsOmitEmpty() bool {
if !m.IsBodyMember() {
return false
}
tag := m.Tags()
for _, item := range tag {
if item.Key == bodyTagKey {
if stringx.Contains(item.Options, "omitempty") {
return true
}
}
}
return false
}
func (m Member) IsOmitempty() bool {
if !m.IsBodyMember() {
return false
@@ -76,7 +93,7 @@ func (m Member) GetPropertyName() (string, error) {
}
func (m Member) GetComment() string {
return strings.TrimSpace(strings.Join(m.Comments, "; "))
return strings.TrimSpace(m.Comment)
}
func (m Member) IsBodyMember() bool {
@@ -93,7 +110,21 @@ func (m Member) IsBodyMember() bool {
return false
}
func (t Type) GetBodyMembers() []Member {
func (m Member) IsFormMember() bool {
if m.IsInline {
return false
}
tags := m.Tags()
for _, tag := range tags {
if tag.Key == formTagKey {
return true
}
}
return false
}
func (t DefineStruct) GetBodyMembers() []Member {
var result []Member
for _, member := range t.Members {
if member.IsBodyMember() {
@@ -103,7 +134,17 @@ func (t Type) GetBodyMembers() []Member {
return result
}
func (t Type) GetNonBodyMembers() []Member {
func (t DefineStruct) GetFormMembers() []Member {
var result []Member
for _, member := range t.Members {
if member.IsFormMember() {
result = append(result, member)
}
}
return result
}
func (t DefineStruct) GetNonBodyMembers() []Member {
var result []Member
for _, member := range t.Members {
if !member.IsBodyMember() {
@@ -112,3 +153,37 @@ func (t Type) GetNonBodyMembers() []Member {
}
return result
}
func (r Route) JoinedDoc() string {
return strings.Join(r.Docs, " ")
}
func (r Route) GetAnnotation(key string) string {
if r.Annotation.Properties == nil {
return ""
}
return r.Annotation.Properties[key]
}
func (g Group) GetAnnotation(key string) string {
if g.Annotation.Properties == nil {
return ""
}
return g.Annotation.Properties[key]
}
func (r Route) ResponseTypeName() string {
if r.ResponseType == nil {
return ""
}
return r.ResponseType.Name()
}
func (r Route) RequestTypeName() string {
if r.RequestType == nil {
return ""
}
return r.RequestType.Name()
}