diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/GoClientCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/GoClientCodegen.java index c9ec24de6b27..81008d552cba 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/GoClientCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/GoClientCodegen.java @@ -163,7 +163,6 @@ public class GoClientCodegen extends DefaultCodegen implements CodegenConfig { @Override public String getTypeDeclaration(Property p) { - String swaggerType = getSwaggerType(p); if(p instanceof ArrayProperty) { ArrayProperty ap = (ArrayProperty) p; Property inner = ap.getItems(); @@ -175,6 +174,12 @@ public class GoClientCodegen extends DefaultCodegen implements CodegenConfig { return getSwaggerType(p) + "[string]" + getTypeDeclaration(inner); } + return super.getTypeDeclaration(p); + } + + @Override + public String getSwaggerType(Property p) { + String swaggerType = super.getSwaggerType(p); String type = null; if(typeMapping.containsKey(swaggerType)) { type = typeMapping.get(swaggerType); diff --git a/modules/swagger-codegen/src/main/resources/go/api.mustache b/modules/swagger-codegen/src/main/resources/go/api.mustache index 16512786abc9..d009ad10ef28 100644 --- a/modules/swagger-codegen/src/main/resources/go/api.mustache +++ b/modules/swagger-codegen/src/main/resources/go/api.mustache @@ -69,17 +69,17 @@ func (a {{classname}}) {{nickname}} ({{#allParams}}{{paramName}} {{{dataType}}}{ } _sling = _sling.BodyForm(&FormParams{ {{#formParams}}{{paramName}}: {{paramName}}{{#hasMore}},{{/hasMore}}{{/formParams}} }) {{/hasFormParams}} -{{#hasBodyParams}}{{#bodyParams}}// body params +{{#hasBodyParam}}{{#bodyParams}}// body params _sling = _sling.BodyJSON({{paramName}}) -{{/bodyParams}}{{/hasBodyParams}} +{{/bodyParams}}{{/hasBodyParam}} {{#returnType}} response := new({{returnType}}) - resp, err := _sling.ReceiveSuccess(response) - fmt.Println("{{operationId}} response: ", response, resp, err) + _, err := _sling.ReceiveSuccess(response) + //fmt.Println("{{operationId}} response: ", response, resp, err) return *response, err {{/returnType}}{{^returnType}} - resp, err := _sling.Request() - fmt.Println("{{operationId}} response: void, ", resp, err) + _, err := _sling.ReceiveSuccess(nil) + //fmt.Println("{{operationId}} response: void, ", resp, err) return err {{/returnType}} } diff --git a/samples/client/petstore/go/swagger/Order.go b/samples/client/petstore/go/swagger/Order.go index 254b962de2f1..9db0f945110b 100644 --- a/samples/client/petstore/go/swagger/Order.go +++ b/samples/client/petstore/go/swagger/Order.go @@ -1,6 +1,7 @@ package swagger import ( + "time" ) type Order struct { diff --git a/samples/client/petstore/go/swagger/PetApi.go b/samples/client/petstore/go/swagger/PetApi.go index a83f426471d0..a4ed5033d570 100644 --- a/samples/client/petstore/go/swagger/PetApi.go +++ b/samples/client/petstore/go/swagger/PetApi.go @@ -6,6 +6,7 @@ import ( "fmt" // "log" "github.com/dghubble/sling" + "os" ) type PetApi struct { @@ -49,11 +50,13 @@ func (a PetApi) UpdatePet (Body Pet) (error) { break // only use the first Accept } +// body params + _sling = _sling.BodyJSON(Body) - resp, err := _sling.Request() - fmt.Println("UpdatePet response: void, ", resp, err) + _, err := _sling.ReceiveSuccess(nil) + //fmt.Println("UpdatePet response: void, ", resp, err) return err } /** @@ -79,11 +82,13 @@ func (a PetApi) AddPet (Body Pet) (error) { break // only use the first Accept } +// body params + _sling = _sling.BodyJSON(Body) - resp, err := _sling.Request() - fmt.Println("AddPet response: void, ", resp, err) + _, err := _sling.ReceiveSuccess(nil) + //fmt.Println("AddPet response: void, ", resp, err) return err } /** @@ -117,8 +122,8 @@ func (a PetApi) FindPetsByStatus (Status []string) ([]Pet, error) { response := new([]Pet) - resp, err := _sling.ReceiveSuccess(response) - fmt.Println("FindPetsByStatus response: ", response, resp, err) + _, err := _sling.ReceiveSuccess(response) + //fmt.Println("FindPetsByStatus response: ", response, resp, err) return *response, err } /** @@ -152,8 +157,8 @@ func (a PetApi) FindPetsByTags (Tags []string) ([]Pet, error) { response := new([]Pet) - resp, err := _sling.ReceiveSuccess(response) - fmt.Println("FindPetsByTags response: ", response, resp, err) + _, err := _sling.ReceiveSuccess(response) + //fmt.Println("FindPetsByTags response: ", response, resp, err) return *response, err } /** @@ -183,8 +188,8 @@ func (a PetApi) GetPetById (PetId int64) (Pet, error) { response := new(Pet) - resp, err := _sling.ReceiveSuccess(response) - fmt.Println("GetPetById response: ", response, resp, err) + _, err := _sling.ReceiveSuccess(response) + //fmt.Println("GetPetById response: ", response, resp, err) return *response, err } /** @@ -221,8 +226,8 @@ func (a PetApi) UpdatePetWithForm (PetId string, Name string, Status string) (er - resp, err := _sling.Request() - fmt.Println("UpdatePetWithForm response: void, ", resp, err) + _, err := _sling.ReceiveSuccess(nil) + //fmt.Println("UpdatePetWithForm response: void, ", resp, err) return err } /** @@ -255,8 +260,8 @@ func (a PetApi) DeletePet (PetId int64, ApiKey string) (error) { - resp, err := _sling.Request() - fmt.Println("DeletePet response: void, ", resp, err) + _, err := _sling.ReceiveSuccess(nil) + //fmt.Println("DeletePet response: void, ", resp, err) return err } /** @@ -293,7 +298,7 @@ func (a PetApi) UploadFile (PetId int64, AdditionalMetadata string, File *os.Fil - resp, err := _sling.Request() - fmt.Println("UploadFile response: void, ", resp, err) + _, err := _sling.ReceiveSuccess(nil) + //fmt.Println("UploadFile response: void, ", resp, err) return err } diff --git a/samples/client/petstore/go/swagger/StoreApi.go b/samples/client/petstore/go/swagger/StoreApi.go index 1682b6ce16a4..4af27d02b7ab 100644 --- a/samples/client/petstore/go/swagger/StoreApi.go +++ b/samples/client/petstore/go/swagger/StoreApi.go @@ -51,8 +51,8 @@ func (a StoreApi) GetInventory () (map[string]int32, error) { response := new(map[string]int32) - resp, err := _sling.ReceiveSuccess(response) - fmt.Println("GetInventory response: ", response, resp, err) + _, err := _sling.ReceiveSuccess(response) + //fmt.Println("GetInventory response: ", response, resp, err) return *response, err } /** @@ -78,11 +78,13 @@ func (a StoreApi) PlaceOrder (Body Order) (Order, error) { break // only use the first Accept } +// body params + _sling = _sling.BodyJSON(Body) response := new(Order) - resp, err := _sling.ReceiveSuccess(response) - fmt.Println("PlaceOrder response: ", response, resp, err) + _, err := _sling.ReceiveSuccess(response) + //fmt.Println("PlaceOrder response: ", response, resp, err) return *response, err } /** @@ -112,8 +114,8 @@ func (a StoreApi) GetOrderById (OrderId string) (Order, error) { response := new(Order) - resp, err := _sling.ReceiveSuccess(response) - fmt.Println("GetOrderById response: ", response, resp, err) + _, err := _sling.ReceiveSuccess(response) + //fmt.Println("GetOrderById response: ", response, resp, err) return *response, err } /** @@ -143,7 +145,7 @@ func (a StoreApi) DeleteOrder (OrderId string) (error) { - resp, err := _sling.Request() - fmt.Println("DeleteOrder response: void, ", resp, err) + _, err := _sling.ReceiveSuccess(nil) + //fmt.Println("DeleteOrder response: void, ", resp, err) return err } diff --git a/samples/client/petstore/go/swagger/UserApi.go b/samples/client/petstore/go/swagger/UserApi.go index 31c26c7b6e70..c5da3c81b6d9 100644 --- a/samples/client/petstore/go/swagger/UserApi.go +++ b/samples/client/petstore/go/swagger/UserApi.go @@ -49,11 +49,13 @@ func (a UserApi) CreateUser (Body User) (error) { break // only use the first Accept } +// body params + _sling = _sling.BodyJSON(Body) - resp, err := _sling.Request() - fmt.Println("CreateUser response: void, ", resp, err) + _, err := _sling.ReceiveSuccess(nil) + //fmt.Println("CreateUser response: void, ", resp, err) return err } /** @@ -79,11 +81,13 @@ func (a UserApi) CreateUsersWithArrayInput (Body []User) (error) { break // only use the first Accept } +// body params + _sling = _sling.BodyJSON(Body) - resp, err := _sling.Request() - fmt.Println("CreateUsersWithArrayInput response: void, ", resp, err) + _, err := _sling.ReceiveSuccess(nil) + //fmt.Println("CreateUsersWithArrayInput response: void, ", resp, err) return err } /** @@ -109,11 +113,13 @@ func (a UserApi) CreateUsersWithListInput (Body []User) (error) { break // only use the first Accept } +// body params + _sling = _sling.BodyJSON(Body) - resp, err := _sling.Request() - fmt.Println("CreateUsersWithListInput response: void, ", resp, err) + _, err := _sling.ReceiveSuccess(nil) + //fmt.Println("CreateUsersWithListInput response: void, ", resp, err) return err } /** @@ -149,8 +155,8 @@ func (a UserApi) LoginUser (Username string, Password string) (string, error) { response := new(string) - resp, err := _sling.ReceiveSuccess(response) - fmt.Println("LoginUser response: ", response, resp, err) + _, err := _sling.ReceiveSuccess(response) + //fmt.Println("LoginUser response: ", response, resp, err) return *response, err } /** @@ -178,8 +184,8 @@ func (a UserApi) LogoutUser () (error) { - resp, err := _sling.Request() - fmt.Println("LogoutUser response: void, ", resp, err) + _, err := _sling.ReceiveSuccess(nil) + //fmt.Println("LogoutUser response: void, ", resp, err) return err } /** @@ -209,8 +215,8 @@ func (a UserApi) GetUserByName (Username string) (User, error) { response := new(User) - resp, err := _sling.ReceiveSuccess(response) - fmt.Println("GetUserByName response: ", response, resp, err) + _, err := _sling.ReceiveSuccess(response) + //fmt.Println("GetUserByName response: ", response, resp, err) return *response, err } /** @@ -238,11 +244,13 @@ func (a UserApi) UpdateUser (Username string, Body User) (error) { break // only use the first Accept } +// body params + _sling = _sling.BodyJSON(Body) - resp, err := _sling.Request() - fmt.Println("UpdateUser response: void, ", resp, err) + _, err := _sling.ReceiveSuccess(nil) + //fmt.Println("UpdateUser response: void, ", resp, err) return err } /** @@ -272,7 +280,7 @@ func (a UserApi) DeleteUser (Username string) (error) { - resp, err := _sling.Request() - fmt.Println("DeleteUser response: void, ", resp, err) + _, err := _sling.ReceiveSuccess(nil) + //fmt.Println("DeleteUser response: void, ", resp, err) return err } diff --git a/samples/client/petstore/go/test.go b/samples/client/petstore/go/test.go index f28a510f3cce..a2f72ca9ef3a 100644 --- a/samples/client/petstore/go/test.go +++ b/samples/client/petstore/go/test.go @@ -2,16 +2,26 @@ package main import ( sw "./swagger" + "encoding/json" "fmt" ) func main() { - fmt.Println("hello world") s := sw.NewPetApi() - //s.UpdatePetWithForm("2", "golang", "available") - // test Get + // test POST(body) + newPet := (sw.Pet{Id: 12830, Name: "gopher", + PhotoUrls: []string{"http://1.com", "http://2.com"}, Status: "pending"}) + + jsonNewPet, _ := json.Marshal(newPet) + fmt.Println("newPet:", string(jsonNewPet)) + s.AddPet(newPet) + + // test POST(form) + s.UpdatePetWithForm("12830", "golang", "available") + + // test GET resp, err := s.GetPetById(3) fmt.Println("GetPetById: ", resp, err)