1
0
mirror of https://github.com/beego/bee.git synced 2024-11-21 23:50:54 +00:00

Merge pull request #474 from beego/develop

v1.9.1
This commit is contained in:
astaxie 2017-09-14 08:16:02 +08:00 committed by GitHub
commit e90da8f77b
3 changed files with 19 additions and 14 deletions

View File

@ -57,7 +57,7 @@ Prints the current Bee, Beego and Go version alongside the platform information.
} }
var outputFormat string var outputFormat string
const version = "1.9.0" const version = "1.9.1"
func init() { func init() {
fs := flag.NewFlagSet("version", flag.ContinueOnError) fs := flag.NewFlagSet("version", flag.ContinueOnError)

View File

@ -44,6 +44,7 @@ const (
axml = "application/xml" axml = "application/xml"
aplain = "text/plain" aplain = "text/plain"
ahtml = "text/html" ahtml = "text/html"
aform = "multipart/form-data"
) )
var pkgCache map[string]struct{} //pkg:controller:function:comments comments: key:value var pkgCache map[string]struct{} //pkg:controller:function:comments comments: key:value
@ -52,7 +53,7 @@ var importlist map[string]string
var controllerList map[string]map[string]*swagger.Item //controllername Paths items var controllerList map[string]map[string]*swagger.Item //controllername Paths items
var modelsList map[string]map[string]swagger.Schema var modelsList map[string]map[string]swagger.Schema
var rootapi swagger.Swagger var rootapi swagger.Swagger
var astPkgs map[string]*ast.Package var astPkgs []*ast.Package
// refer to builtin.go // refer to builtin.go
var basicTypes = map[string]string{ var basicTypes = map[string]string{
@ -89,7 +90,7 @@ func init() {
importlist = make(map[string]string) importlist = make(map[string]string)
controllerList = make(map[string]map[string]*swagger.Item) controllerList = make(map[string]map[string]*swagger.Item)
modelsList = make(map[string]map[string]swagger.Schema) modelsList = make(map[string]map[string]swagger.Schema)
astPkgs = map[string]*ast.Package{} astPkgs = make([]*ast.Package, 0)
} }
func ParsePackagesFromDir(dirpath string) { func ParsePackagesFromDir(dirpath string) {
@ -136,8 +137,8 @@ func parsePackageFromDir(path string) error {
return err return err
} }
for k, v := range folderPkgs { for _, v := range folderPkgs {
astPkgs[k] = v astPkgs = append(astPkgs, v)
} }
return nil return nil
@ -675,6 +676,8 @@ func parserComments(f *ast.FuncDecl, controllerName, pkgpath string) error {
case "html": case "html":
opts.Consumes = append(opts.Consumes, ahtml) opts.Consumes = append(opts.Consumes, ahtml)
opts.Produces = append(opts.Produces, ahtml) opts.Produces = append(opts.Produces, ahtml)
case "form":
opts.Consumes = append(opts.Consumes, aform)
} }
} }
} else if strings.HasPrefix(t, "@Security") { } else if strings.HasPrefix(t, "@Security") {
@ -860,14 +863,16 @@ func getModel(str string) (objectname string, m swagger.Schema, realTypes []stri
packageName := "" packageName := ""
m.Type = "object" m.Type = "object"
for _, pkg := range astPkgs { for _, pkg := range astPkgs {
for _, fl := range pkg.Files { if strs[0] == pkg.Name {
for k, d := range fl.Scope.Objects { for _, fl := range pkg.Files {
if d.Kind == ast.Typ { for k, d := range fl.Scope.Objects {
if k != objectname { if d.Kind == ast.Typ {
continue if k != objectname {
continue
}
packageName = pkg.Name
parseObject(d, k, &m, &realTypes, astPkgs, pkg.Name)
} }
packageName = pkg.Name
parseObject(d, k, &m, &realTypes, astPkgs, pkg.Name)
} }
} }
} }
@ -885,7 +890,7 @@ func getModel(str string) (objectname string, m swagger.Schema, realTypes []stri
return return
} }
func parseObject(d *ast.Object, k string, m *swagger.Schema, realTypes *[]string, astPkgs map[string]*ast.Package, packageName string) { func parseObject(d *ast.Object, k string, m *swagger.Schema, realTypes *[]string, astPkgs []*ast.Package, packageName string) {
ts, ok := d.Decl.(*ast.TypeSpec) ts, ok := d.Decl.(*ast.TypeSpec)
if !ok { if !ok {
beeLogger.Log.Fatalf("Unknown type without TypeSec: %v\n", d) beeLogger.Log.Fatalf("Unknown type without TypeSec: %v\n", d)

View File

@ -141,7 +141,7 @@ type Propertie struct {
// Response as they are returned from executing this operation. // Response as they are returned from executing this operation.
type Response struct { type Response struct {
Description string `json:"description,omitempty" yaml:"description,omitempty"` Description string `json:"description" yaml:"description"`
Schema *Schema `json:"schema,omitempty" yaml:"schema,omitempty"` Schema *Schema `json:"schema,omitempty" yaml:"schema,omitempty"`
Ref string `json:"$ref,omitempty" yaml:"$ref,omitempty"` Ref string `json:"$ref,omitempty" yaml:"$ref,omitempty"`
} }