本文整理汇总了Golang中github.com/go-openapi/swag.ToGoName函数的典型用法代码示例。如果您正苦于以下问题:Golang ToGoName函数的具体用法?Golang ToGoName怎么用?Golang ToGoName使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ToGoName函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: pascalize
func pascalize(arg string) string {
if len(arg) == 0 || arg[0] > '9' {
return swag.ToGoName(arg)
}
return swag.ToGoName("Nr " + arg)
}
开发者ID:Cl0udPhish,项目名称:go-swagger,代码行数:7,代码来源:shared.go
示例2: generateAPIBuilder
func (a *appGenerator) generateAPIBuilder(app *GenApp) error {
buf := bytes.NewBuffer(nil)
if err := builderTemplate.Execute(buf, app); err != nil {
return err
}
log.Println("rendered builder template:", app.Package+"."+swag.ToGoName(app.Name))
return writeToFile(filepath.Join(a.Target, a.ServerPackage, app.Package), swag.ToGoName(app.Name)+"Api", buf.Bytes())
}
开发者ID:Cl0udPhish,项目名称:go-swagger,代码行数:8,代码来源:support.go
示例3: goTypeName
func (t *typeResolver) goTypeName(nm string) string {
if t.ModelsPackage == "" {
return swag.ToGoName(nm)
}
if _, ok := t.KnownDefs[nm]; ok {
return strings.Join([]string{t.ModelsPackage, swag.ToGoName(nm)}, ".")
}
return swag.ToGoName(nm)
}
开发者ID:Cl0udPhish,项目名称:go-swagger,代码行数:9,代码来源:types.go
示例4: generateEmbeddedSwaggerJSON
func (c *clientGenerator) generateEmbeddedSwaggerJSON(app *GenApp) error {
buf := bytes.NewBuffer(nil)
if err := embeddedSpecTemplate.Execute(buf, app); err != nil {
return err
}
log.Println("rendered client embedded swagger JSON template:", c.ClientPackage+"."+swag.ToGoName(app.Name)+"Client")
fp := filepath.Join(c.Target, c.ClientPackage)
return writeToFile(fp, swag.ToGoName(app.Name)+"EmbeddedSpec", buf.Bytes())
}
开发者ID:Cl0udPhish,项目名称:go-swagger,代码行数:11,代码来源:client.go
示例5: generateGroupClient
func (c *clientGenerator) generateGroupClient(opGroup GenOperationGroup) error {
buf := bytes.NewBuffer(nil)
if err := clientTemplate.Execute(buf, opGroup); err != nil {
return err
}
log.Println("rendered operation group client template:", opGroup.Name+"."+swag.ToGoName(opGroup.Name)+"Client")
fp := filepath.Join(c.Target, c.ClientPackage, opGroup.Name)
return writeToFile(fp, swag.ToGoName(opGroup.Name)+"Client", buf.Bytes())
}
开发者ID:Cl0udPhish,项目名称:go-swagger,代码行数:11,代码来源:client.go
示例6: generateMain
func (a *appGenerator) generateMain(app *GenApp) error {
pth := filepath.Join(a.Target, "cmd", swag.ToCommandName(swag.ToGoName(app.Name)+"Server"))
if fileExists(pth, "main") && !a.GenOpts.IncludeMain {
log.Println("skipped (already exists) main template:", app.Package+".Main")
return nil
}
buf := bytes.NewBuffer(nil)
if err := mainTemplate.Execute(buf, app); err != nil {
return err
}
log.Println("rendered main template:", "server."+swag.ToGoName(app.Name))
return writeToFile(pth, "main", buf.Bytes())
}
开发者ID:Cl0udPhish,项目名称:go-swagger,代码行数:13,代码来源:support.go
示例7: generateResponses
func (c *clientGenerator) generateResponses(op *GenOperation) error {
buf := bytes.NewBuffer(nil)
if err := clientResponseTemplate.Execute(buf, op); err != nil {
return err
}
log.Println("rendered client responses template:", op.Package+"."+swag.ToGoName(op.Name)+"Responses")
fp := filepath.Join(c.Target, c.ClientPackage)
if len(op.Package) > 0 {
fp = filepath.Join(fp, op.Package)
}
return writeToFile(fp, swag.ToGoName(op.Name)+"Responses", buf.Bytes())
}
开发者ID:Cl0udPhish,项目名称:go-swagger,代码行数:14,代码来源:client.go
示例8: generateConfigureAPI
func (a *appGenerator) generateConfigureAPI(app *GenApp) error {
pth := filepath.Join(a.Target, app.APIPackage)
nm := "Configure" + swag.ToGoName(app.Name)
if fileExists(pth, nm) {
log.Println("skipped (already exists) configure api template:", app.Package+".Configure"+swag.ToGoName(app.Name))
return nil
}
buf := bytes.NewBuffer(nil)
if err := configureAPITemplate.Execute(buf, app); err != nil {
return err
}
log.Println("rendered configure api template:", app.Package+".Configure"+swag.ToGoName(app.Name))
return writeToFileIfNotExist(pth, nm, buf.Bytes())
}
开发者ID:Cl0udPhish,项目名称:go-swagger,代码行数:15,代码来源:support.go
示例9: NewAdditionalItems
func (sg *schemaGenContext) NewAdditionalItems(schema *spec.Schema) *schemaGenContext {
if Debug {
log.Printf("new additional items\n")
}
pg := sg.shallowClone()
indexVar := pg.IndexVar
pg.Name = sg.Name + " items"
itemsLen := 0
if sg.Schema.Items != nil {
itemsLen = sg.Schema.Items.Len()
}
var mod string
if itemsLen > 0 {
mod = "+" + strconv.Itoa(itemsLen)
}
if pg.Path == "" {
pg.Path = "strconv.Itoa(" + indexVar + mod + ")"
} else {
pg.Path = pg.Path + "+ \".\" + strconv.Itoa(" + indexVar + mod + ")"
}
pg.IndexVar = indexVar
pg.ValueExpr = sg.ValueExpr + "." + swag.ToGoName(sg.Name) + "Items[" + indexVar + "]"
pg.Schema = spec.Schema{}
if schema != nil {
pg.Schema = *schema
}
pg.Required = false
return pg
}
开发者ID:Cl0udPhish,项目名称:go-swagger,代码行数:29,代码来源:model.go
示例10: TestSchemaValidation_RequiredProps
func TestSchemaValidation_RequiredProps(t *testing.T) {
specDoc, err := loads.Spec("../fixtures/codegen/todolist.schemavalidation.yml")
if assert.NoError(t, err) {
k := "RequiredProps"
schema := specDoc.Spec().Definitions[k]
gm, err := makeGenDefinition(k, "models", schema, specDoc, true, true)
if assert.NoError(t, err) {
assert.Len(t, gm.Properties, 6)
for _, p := range gm.Properties {
if assert.True(t, p.Required) {
buf := bytes.NewBuffer(nil)
err := modelTemplate.Execute(buf, gm)
if assert.NoError(t, err) {
formatted, err := formatGoFile("required_props.go", buf.Bytes())
if assert.NoError(t, err) {
res := string(formatted)
assertInCode(t, k+") Validate(formats", res)
assertInCode(t, "validate"+swag.ToGoName(p.Name), res)
assertInCode(t, "err := validate.Required", res)
assertInCode(t, "errors.CompositeValidationError(res...)", res)
}
}
}
}
}
}
}
开发者ID:Cl0udPhish,项目名称:go-swagger,代码行数:28,代码来源:schemavalidation_test.go
示例11: discriminatorInfo
func discriminatorInfo(doc *analysis.Spec) *discInfo {
baseTypes := make(map[string]discor)
for _, sch := range doc.AllDefinitions() {
if sch.Schema.Discriminator != "" {
tpe, _ := sch.Schema.Extensions.GetString("x-go-name")
if tpe == "" {
tpe = swag.ToGoName(sch.Name)
}
baseTypes[sch.Ref.String()] = discor{
FieldName: sch.Schema.Discriminator,
GoType: tpe,
JSONName: sch.Name,
}
}
}
subTypes := make(map[string]discee)
for _, sch := range doc.SchemasWithAllOf() {
for _, ao := range sch.Schema.AllOf {
if ao.Ref.String() != "" {
if bt, ok := baseTypes[ao.Ref.String()]; ok {
name, _ := sch.Schema.Extensions.GetString("x-class")
if name == "" {
name = sch.Name
}
tpe, _ := sch.Schema.Extensions.GetString("x-go-name")
if tpe == "" {
tpe = swag.ToGoName(sch.Name)
}
dce := discee{
FieldName: bt.FieldName,
FieldValue: name,
Ref: sch.Ref,
ParentRef: ao.Ref,
JSONName: sch.Name,
GoType: tpe,
}
subTypes[sch.Ref.String()] = dce
bt.Children = append(bt.Children, dce)
baseTypes[ao.Ref.String()] = bt
}
}
}
}
return &discInfo{Discriminators: baseTypes, Discriminated: subTypes}
}
开发者ID:Cl0udPhish,项目名称:go-swagger,代码行数:46,代码来源:discriminators.go
示例12: generateEmbeddedSwaggerJSON
func (a *appGenerator) generateEmbeddedSwaggerJSON(app *GenApp) error {
buf := bytes.NewBuffer(nil)
appc := *app
appc.Package = app.APIPackage
if err := embeddedSpecTemplate.Execute(buf, &appc); err != nil {
return err
}
log.Println("rendered embedded Swagger JSON template:", app.APIPackage+"."+swag.ToGoName(app.Name))
return writeToFile(filepath.Join(a.Target, a.ServerPackage), "embedded_spec", buf.Bytes())
}
开发者ID:Cl0udPhish,项目名称:go-swagger,代码行数:10,代码来源:support.go
示例13: appNameOrDefault
func appNameOrDefault(specDoc *loads.Document, name, defaultName string) string {
if strings.TrimSpace(name) == "" {
if specDoc.Spec().Info != nil && strings.TrimSpace(specDoc.Spec().Info.Title) != "" {
name = specDoc.Spec().Info.Title
} else {
name = defaultName
}
}
return strings.TrimSuffix(swag.ToGoName(name), "API")
}
开发者ID:Cl0udPhish,项目名称:go-swagger,代码行数:10,代码来源:shared.go
示例14: makeNewStruct
func (sg *schemaGenContext) makeNewStruct(name string, schema spec.Schema) *schemaGenContext {
if Debug {
log.Println("making new struct", name, sg.Container)
}
sp := sg.TypeResolver.Doc.Spec()
name = swag.ToGoName(name)
if sg.TypeResolver.ModelName != sg.Name {
name = swag.ToGoName(sg.TypeResolver.ModelName + " " + name)
}
if sp.Definitions == nil {
sp.Definitions = make(spec.Definitions)
}
sp.Definitions[name] = schema
pg := schemaGenContext{
Path: "",
Name: name,
Receiver: sg.Receiver,
IndexVar: "i",
ValueExpr: sg.Receiver,
Schema: schema,
Required: false,
Named: true,
ExtraSchemas: make(map[string]GenSchema),
Discrimination: sg.Discrimination,
Container: sg.Container,
IncludeValidator: sg.IncludeValidator,
IncludeModel: sg.IncludeModel,
}
if schema.Ref.String() == "" {
resolver := newTypeResolver(sg.TypeResolver.ModelsPackage, sg.TypeResolver.Doc)
resolver.ModelName = name //sg.TypeResolver.ModelName
pg.TypeResolver = resolver
}
pg.GenSchema.IsVirtual = true
sg.ExtraSchemas[name] = pg.GenSchema
return &pg
}
开发者ID:Cl0udPhish,项目名称:go-swagger,代码行数:38,代码来源:model.go
示例15: generateResponses
func (o *opGen) generateResponses() error {
buf := bytes.NewBuffer(nil)
if err := responsesTemplate.Execute(buf, o.data); err != nil {
return err
}
log.Println("rendered responses template:", o.pkg+"."+o.cname+"Responses")
fp := filepath.Join(o.Target, o.pkg)
if o.pkg != o.APIPackage {
fp = filepath.Join(o.Target, o.APIPackage, o.pkg)
}
return writeToFile(fp, swag.ToGoName(o.data.Name)+"Responses", buf.Bytes())
}
开发者ID:Cl0udPhish,项目名称:go-swagger,代码行数:14,代码来源:operation.go
示例16: gatherOperations
func gatherOperations(specDoc *analysis.Spec, operationIDs []string) map[string]opRef {
var oprefs opRefs
for method, pathItem := range specDoc.Operations() {
for path, operation := range pathItem {
// nm := ensureUniqueName(operation.ID, method, path, operations)
vv := *operation
oprefs = append(oprefs, opRef{
Key: swag.ToGoName(strings.ToLower(method) + " " + path),
Method: method,
Path: path,
ID: vv.ID,
Op: &vv,
})
}
}
sort.Sort(oprefs)
operations := make(map[string]opRef)
for _, opr := range oprefs {
nm := opr.ID
if nm == "" {
nm = opr.Key
}
_, found := operations[nm]
if found {
nm = opr.Key
}
if len(operationIDs) == 0 || containsString(operationIDs, opr.ID) || containsString(operationIDs, nm) {
opr.ID = nm
opr.Op.ID = nm
operations[nm] = opr
}
}
return operations
}
开发者ID:Cl0udPhish,项目名称:go-swagger,代码行数:39,代码来源:shared.go
示例17: MakeParameter
func (b *codeGenOpBuilder) MakeParameter(receiver string, resolver *typeResolver, param spec.Parameter) (GenParameter, error) {
if Debug {
log.Printf("[%s %s] making parameter %q", b.Method, b.Path, param.Name)
}
if param.Ref.String() != "" {
param2, err := spec.ResolveParameter(b.Doc.Spec(), param.Ref)
if err != nil {
return GenParameter{}, err
}
if param2 == nil {
return GenParameter{}, fmt.Errorf("could not resolve parameter ref: %s", param.Ref.String())
}
param = *param2
}
var child *GenItems
res := GenParameter{
Name: param.Name,
ModelsPackage: b.ModelsPackage,
Path: fmt.Sprintf("%q", param.Name),
ValueExpression: fmt.Sprintf("%s.%s", receiver, pascalize(param.Name)),
IndexVar: "i",
BodyParam: nil,
Default: param.Default,
HasDefault: param.Default != nil,
Enum: param.Enum,
Description: param.Description,
ReceiverName: receiver,
CollectionFormat: param.CollectionFormat,
Child: child,
Location: param.In,
AllowEmptyValue: (param.In == "query" || param.In == "formData") && param.AllowEmptyValue,
}
if param.In == "body" {
sc := schemaGenContext{
Path: res.Path,
Name: res.Name,
Receiver: res.ReceiverName,
ValueExpr: res.ReceiverName,
IndexVar: res.IndexVar,
Schema: *param.Schema,
Required: param.Required,
TypeResolver: resolver,
Named: false,
IncludeModel: true,
IncludeValidator: true,
ExtraSchemas: make(map[string]GenSchema),
}
if err := sc.makeGenSchema(); err != nil {
return GenParameter{}, err
}
schema := sc.GenSchema
if schema.IsAnonymous {
schema.Name = swag.ToGoName(b.Operation.ID + " Body")
nm := schema.Name
schema.GoType = nm
schema.IsAnonymous = false
if len(schema.Properties) > 0 {
if b.ExtraSchemas == nil {
b.ExtraSchemas = make(map[string]GenSchema)
}
b.ExtraSchemas[nm] = schema
}
prevSchema := schema
schema = GenSchema{}
schema.IsAnonymous = false
schema.GoType = nm
schema.SwaggerType = nm
if len(prevSchema.Properties) == 0 {
schema.GoType = "interface{}"
}
schema.IsComplexObject = true
schema.IsInterface = len(schema.Properties) == 0
}
res.Schema = &schema
it := res.Schema.Items
items := new(GenItems)
var prev *GenItems
next := items
for it != nil {
next.resolvedType = it.resolvedType
next.sharedValidations = it.sharedValidations
next.Formatter = stringFormatters[it.SwaggerFormat]
_, next.IsCustomFormatter = customFormatters[it.SwaggerFormat]
it = it.Items
if prev != nil {
prev.Child = next
}
prev = next
next = new(GenItems)
}
res.Child = items
res.resolvedType = schema.resolvedType
res.sharedValidations = schema.sharedValidations
res.ZeroValue = schema.Zero()
//.........这里部分代码省略.........
开发者ID:Cl0udPhish,项目名称:go-swagger,代码行数:101,代码来源:operation.go
示例18:
"schemaType": true,
"subTypeBody": true,
"schema": true,
"additionalPropertiesSerializer": true,
"serverDoc": true,
"structfield": true,
"hasDiscriminatedSerializer": true,
"discriminatedSerializer": true,
}
// FuncMap is a map with default functions for use n the templates.
// These are available in every template
var FuncMap template.FuncMap = map[string]interface{}{
"pascalize": func(arg string) string {
if len(arg) == 0 || arg[0] > '9' {
return swag.ToGoName(arg)
}
return swag.ToGoName("Nr " + arg)
},
"camelize": swag.ToJSONName,
"varname": swag.ToVarName,
"humanize": swag.ToHumanNameLower,
"snakize": swag.ToFileName,
"dasherize": swag.ToCommandName,
"pluralizeFirstWord": func(arg string) string {
sentence := strings.Split(arg, " ")
if len(sentence) == 1 {
return inflect.Pluralize(arg)
}
开发者ID:Cl0udPhish,项目名称:go-swagger,代码行数:30,代码来源:template_repo.go
示例19: fieldNameFromParam
func fieldNameFromParam(param *spec.Parameter) string {
if nm, ok := param.Extensions.GetString("go-name"); ok {
return nm
}
return swag.ToGoName(param.Name)
}
开发者ID:Cl0udPhish,项目名称:go-swagger,代码行数:6,代码来源:analyzer.go
示例20: assertGenParam
func (ctx *paramTestContext) assertGenParam(t testing.TB, param spec.Parameter, gp GenParameter) bool {
// went with the verbose option here, easier to debug
if !assert.Equal(t, param.In, gp.Location) {
return false
}
if !assert.Equal(t, param.Name, gp.Name) {
return false
}
if !assert.Equal(t, fmt.Sprintf("%q", param.Name), gp.Path) {
return false
}
if !assert.Equal(t, "i", gp.IndexVar) {
return false
}
if !assert.Equal(t, "a", gp.ReceiverName) {
return false
}
if !assert.Equal(t, "a."+swag.ToGoName(param.Name), gp.ValueExpression) {
return false
}
if !assert.Equal(t, ctx.Formatter, gp.Formatter) {
return false
}
if !assert.Equal(t, ctx.Converter, gp.Converter) {
return false
}
if !assert.Equal(t, param.Description, gp.Description) {
return false
}
if !assert.Equal(t, param.CollectionFormat, gp.CollectionFormat) {
return false
}
if !assert.Equal(t, param.Required, gp.Required) {
return false
}
if !assert.Equal(t, param.Minimum, gp.Minimum) || !assert.Equal(t, param.ExclusiveMinimum, gp.ExclusiveMinimum) {
return false
}
if !assert.Equal(t, param.Maximum, gp.Maximum) || !assert.Equal(t, param.ExclusiveMaximum, gp.ExclusiveMaximum) {
return false
}
if !assert.Equal(t, param.MinLength, gp.MinLength) {
return false
}
if !assert.Equal(t, param.MaxLength, gp.MaxLength) {
return false
}
if !assert.Equal(t, param.Pattern, gp.Pattern) {
return false
}
if !assert.Equal(t, param.MaxItems, gp.MaxItems) {
return false
}
if !assert.Equal(t, param.MinItems, gp.MinItems) {
return false
}
if !assert.Equal(t, param.UniqueItems, gp.UniqueItems) {
return false
}
if !assert.Equal(t, param.MultipleOf, gp.MultipleOf) {
return false
}
if !assert.EqualValues(t, param.Enum, gp.Enum) {
return false
}
if !assert.Equal(t, param.Type, gp.SwaggerType) {
return false
}
if !assert.Equal(t, param.Format, gp.SwaggerFormat) {
return false
}
if _, ok := primitives[gp.GoType]; ok {
if !assert.True(t, gp.IsPrimitive) {
return false
}
} else {
if !assert.False(t, gp.IsPrimitive) {
return false
}
}
// verify rendered template
if param.In == "body" {
if !assertBodyParam(t, param, gp) {
return false
}
return true
}
if ctx.Items != nil {
return ctx.Items.Assert(t, param.Items, gp.Child)
}
return true
}
开发者ID:Cl0udPhish,项目名称:go-swagger,代码行数:94,代码来源:parameter_test.go
注:本文中的github.com/go-openapi/swag.ToGoName函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论