Skip to content

Commit

Permalink
Support param for field from Oneof definition. (grpc-ecosystem#621)
Browse files Browse the repository at this point in the history
* Support param for field from Oneof definition.

* Fix error reason and regenerate files.

* Regenerate echo_service.pb.gw.go.
  • Loading branch information
bonafideyan authored and yugui committed Apr 27, 2018
1 parent d3ca74e commit 9a88c4b
Show file tree
Hide file tree
Showing 10 changed files with 1,394 additions and 26 deletions.
1 change: 1 addition & 0 deletions examples/clients/echo/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ go_library(
"api_response.go",
"configuration.go",
"echo_service_api.go",
"examplepb_embedded.go",
"examplepb_simple_message.go",
],
importpath = "github.com/grpc-ecosystem/grpc-gateway/examples/clients/echo",
Expand Down
259 changes: 257 additions & 2 deletions examples/clients/echo/echo_service_api.go
Original file line number Diff line number Diff line change
Expand Up @@ -104,9 +104,16 @@ func (a EchoServiceApi) Echo(id string) (*ExamplepbSimpleMessage, *APIResponse,
*
* @param id
* @param num
* @param lineNum
* @param lang
* @param statusProgress
* @param statusNote
* @param en
* @param noProgress
* @param noNote
* @return *ExamplepbSimpleMessage
*/
func (a EchoServiceApi) Echo2(id string, num string) (*ExamplepbSimpleMessage, *APIResponse, error) {
func (a EchoServiceApi) Echo2(id string, num string, lineNum string, lang string, statusProgress string, statusNote string, en string, noProgress string, noNote string) (*ExamplepbSimpleMessage, *APIResponse, error) {

var localVarHttpMethod = strings.ToUpper("Get")
// create path and map variables
Expand All @@ -124,6 +131,13 @@ func (a EchoServiceApi) Echo2(id string, num string) (*ExamplepbSimpleMessage, *
for key := range a.Configuration.DefaultHeader {
localVarHeaderParams[key] = a.Configuration.DefaultHeader[key]
}
localVarQueryParams.Add("line_num", a.Configuration.APIClient.ParameterToString(lineNum, ""))
localVarQueryParams.Add("lang", a.Configuration.APIClient.ParameterToString(lang, ""))
localVarQueryParams.Add("status.progress", a.Configuration.APIClient.ParameterToString(statusProgress, ""))
localVarQueryParams.Add("status.note", a.Configuration.APIClient.ParameterToString(statusNote, ""))
localVarQueryParams.Add("en", a.Configuration.APIClient.ParameterToString(en, ""))
localVarQueryParams.Add("no.progress", a.Configuration.APIClient.ParameterToString(noProgress, ""))
localVarQueryParams.Add("no.note", a.Configuration.APIClient.ParameterToString(noNote, ""))

// to determine the Content-Type header
localVarHttpContentTypes := []string{ "application/json", }
Expand Down Expand Up @@ -161,6 +175,233 @@ func (a EchoServiceApi) Echo2(id string, num string) (*ExamplepbSimpleMessage, *
return successPayload, localVarAPIResponse, err
}

/**
* Echo method receives a simple message and returns it.
* The message posted as the id parameter will also be returned.
*
* @param id
* @param num
* @param lang
* @param lineNum
* @param statusProgress
* @param statusNote
* @param en
* @param noProgress
* @param noNote
* @return *ExamplepbSimpleMessage
*/
func (a EchoServiceApi) Echo3(id string, num string, lang string, lineNum string, statusProgress string, statusNote string, en string, noProgress string, noNote string) (*ExamplepbSimpleMessage, *APIResponse, error) {

var localVarHttpMethod = strings.ToUpper("Get")
// create path and map variables
localVarPath := a.Configuration.BasePath + "/v1/example/echo/{id}/{num}/{lang}"
localVarPath = strings.Replace(localVarPath, "{"+"id"+"}", fmt.Sprintf("%v", id), -1)
localVarPath = strings.Replace(localVarPath, "{"+"num"+"}", fmt.Sprintf("%v", num), -1)
localVarPath = strings.Replace(localVarPath, "{"+"lang"+"}", fmt.Sprintf("%v", lang), -1)

localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := make(map[string]string)
var localVarPostBody interface{}
var localVarFileName string
var localVarFileBytes []byte
// add default headers if any
for key := range a.Configuration.DefaultHeader {
localVarHeaderParams[key] = a.Configuration.DefaultHeader[key]
}
localVarQueryParams.Add("line_num", a.Configuration.APIClient.ParameterToString(lineNum, ""))
localVarQueryParams.Add("status.progress", a.Configuration.APIClient.ParameterToString(statusProgress, ""))
localVarQueryParams.Add("status.note", a.Configuration.APIClient.ParameterToString(statusNote, ""))
localVarQueryParams.Add("en", a.Configuration.APIClient.ParameterToString(en, ""))
localVarQueryParams.Add("no.progress", a.Configuration.APIClient.ParameterToString(noProgress, ""))
localVarQueryParams.Add("no.note", a.Configuration.APIClient.ParameterToString(noNote, ""))

// to determine the Content-Type header
localVarHttpContentTypes := []string{ "application/json", }

// set Content-Type header
localVarHttpContentType := a.Configuration.APIClient.SelectHeaderContentType(localVarHttpContentTypes)
if localVarHttpContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHttpContentType
}
// to determine the Accept header
localVarHttpHeaderAccepts := []string{
"application/json",
}

// set Accept header
localVarHttpHeaderAccept := a.Configuration.APIClient.SelectHeaderAccept(localVarHttpHeaderAccepts)
if localVarHttpHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
}
var successPayload = new(ExamplepbSimpleMessage)
localVarHttpResponse, err := a.Configuration.APIClient.CallAPI(localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)

var localVarURL, _ = url.Parse(localVarPath)
localVarURL.RawQuery = localVarQueryParams.Encode()
var localVarAPIResponse = &APIResponse{Operation: "Echo3", Method: localVarHttpMethod, RequestURL: localVarURL.String()}
if localVarHttpResponse != nil {
localVarAPIResponse.Response = localVarHttpResponse.RawResponse
localVarAPIResponse.Payload = localVarHttpResponse.Body()
}

if err != nil {
return successPayload, localVarAPIResponse, err
}
err = json.Unmarshal(localVarHttpResponse.Body(), &successPayload)
return successPayload, localVarAPIResponse, err
}

/**
* Echo method receives a simple message and returns it.
* The message posted as the id parameter will also be returned.
*
* @param id
* @param lineNum
* @param statusNote
* @param num
* @param lang
* @param statusProgress
* @param en
* @param noProgress
* @return *ExamplepbSimpleMessage
*/
func (a EchoServiceApi) Echo4(id string, lineNum string, statusNote string, num string, lang string, statusProgress string, en string, noProgress string) (*ExamplepbSimpleMessage, *APIResponse, error) {

var localVarHttpMethod = strings.ToUpper("Get")
// create path and map variables
localVarPath := a.Configuration.BasePath + "/v1/example/echo1/{id}/{line_num}/{status.note}"
localVarPath = strings.Replace(localVarPath, "{"+"id"+"}", fmt.Sprintf("%v", id), -1)
localVarPath = strings.Replace(localVarPath, "{"+"line_num"+"}", fmt.Sprintf("%v", lineNum), -1)
localVarPath = strings.Replace(localVarPath, "{"+"status.note"+"}", fmt.Sprintf("%v", statusNote), -1)

localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := make(map[string]string)
var localVarPostBody interface{}
var localVarFileName string
var localVarFileBytes []byte
// add default headers if any
for key := range a.Configuration.DefaultHeader {
localVarHeaderParams[key] = a.Configuration.DefaultHeader[key]
}
localVarQueryParams.Add("num", a.Configuration.APIClient.ParameterToString(num, ""))
localVarQueryParams.Add("lang", a.Configuration.APIClient.ParameterToString(lang, ""))
localVarQueryParams.Add("status.progress", a.Configuration.APIClient.ParameterToString(statusProgress, ""))
localVarQueryParams.Add("en", a.Configuration.APIClient.ParameterToString(en, ""))
localVarQueryParams.Add("no.progress", a.Configuration.APIClient.ParameterToString(noProgress, ""))

// to determine the Content-Type header
localVarHttpContentTypes := []string{ "application/json", }

// set Content-Type header
localVarHttpContentType := a.Configuration.APIClient.SelectHeaderContentType(localVarHttpContentTypes)
if localVarHttpContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHttpContentType
}
// to determine the Accept header
localVarHttpHeaderAccepts := []string{
"application/json",
}

// set Accept header
localVarHttpHeaderAccept := a.Configuration.APIClient.SelectHeaderAccept(localVarHttpHeaderAccepts)
if localVarHttpHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
}
var successPayload = new(ExamplepbSimpleMessage)
localVarHttpResponse, err := a.Configuration.APIClient.CallAPI(localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)

var localVarURL, _ = url.Parse(localVarPath)
localVarURL.RawQuery = localVarQueryParams.Encode()
var localVarAPIResponse = &APIResponse{Operation: "Echo4", Method: localVarHttpMethod, RequestURL: localVarURL.String()}
if localVarHttpResponse != nil {
localVarAPIResponse.Response = localVarHttpResponse.RawResponse
localVarAPIResponse.Payload = localVarHttpResponse.Body()
}

if err != nil {
return successPayload, localVarAPIResponse, err
}
err = json.Unmarshal(localVarHttpResponse.Body(), &successPayload)
return successPayload, localVarAPIResponse, err
}

/**
* Echo method receives a simple message and returns it.
* The message posted as the id parameter will also be returned.
*
* @param noNote
* @param id Id represents the message identifier.
* @param num
* @param lineNum
* @param lang
* @param statusProgress
* @param en
* @param noProgress
* @return *ExamplepbSimpleMessage
*/
func (a EchoServiceApi) Echo5(noNote string, id string, num string, lineNum string, lang string, statusProgress string, en string, noProgress string) (*ExamplepbSimpleMessage, *APIResponse, error) {

var localVarHttpMethod = strings.ToUpper("Get")
// create path and map variables
localVarPath := a.Configuration.BasePath + "/v1/example/echo2/{no.note}"
localVarPath = strings.Replace(localVarPath, "{"+"no.note"+"}", fmt.Sprintf("%v", noNote), -1)

localVarHeaderParams := make(map[string]string)
localVarQueryParams := url.Values{}
localVarFormParams := make(map[string]string)
var localVarPostBody interface{}
var localVarFileName string
var localVarFileBytes []byte
// add default headers if any
for key := range a.Configuration.DefaultHeader {
localVarHeaderParams[key] = a.Configuration.DefaultHeader[key]
}
localVarQueryParams.Add("id", a.Configuration.APIClient.ParameterToString(id, ""))
localVarQueryParams.Add("num", a.Configuration.APIClient.ParameterToString(num, ""))
localVarQueryParams.Add("line_num", a.Configuration.APIClient.ParameterToString(lineNum, ""))
localVarQueryParams.Add("lang", a.Configuration.APIClient.ParameterToString(lang, ""))
localVarQueryParams.Add("status.progress", a.Configuration.APIClient.ParameterToString(statusProgress, ""))
localVarQueryParams.Add("en", a.Configuration.APIClient.ParameterToString(en, ""))
localVarQueryParams.Add("no.progress", a.Configuration.APIClient.ParameterToString(noProgress, ""))

// to determine the Content-Type header
localVarHttpContentTypes := []string{ "application/json", }

// set Content-Type header
localVarHttpContentType := a.Configuration.APIClient.SelectHeaderContentType(localVarHttpContentTypes)
if localVarHttpContentType != "" {
localVarHeaderParams["Content-Type"] = localVarHttpContentType
}
// to determine the Accept header
localVarHttpHeaderAccepts := []string{
"application/json",
}

// set Accept header
localVarHttpHeaderAccept := a.Configuration.APIClient.SelectHeaderAccept(localVarHttpHeaderAccepts)
if localVarHttpHeaderAccept != "" {
localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
}
var successPayload = new(ExamplepbSimpleMessage)
localVarHttpResponse, err := a.Configuration.APIClient.CallAPI(localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)

var localVarURL, _ = url.Parse(localVarPath)
localVarURL.RawQuery = localVarQueryParams.Encode()
var localVarAPIResponse = &APIResponse{Operation: "Echo5", Method: localVarHttpMethod, RequestURL: localVarURL.String()}
if localVarHttpResponse != nil {
localVarAPIResponse.Response = localVarHttpResponse.RawResponse
localVarAPIResponse.Payload = localVarHttpResponse.Body()
}

if err != nil {
return successPayload, localVarAPIResponse, err
}
err = json.Unmarshal(localVarHttpResponse.Body(), &successPayload)
return successPayload, localVarAPIResponse, err
}

/**
* EchoBody method receives a simple message and returns it.
*
Expand Down Expand Up @@ -227,9 +468,16 @@ func (a EchoServiceApi) EchoBody(body ExamplepbSimpleMessage) (*ExamplepbSimpleM
*
* @param id Id represents the message identifier.
* @param num
* @param lineNum
* @param lang
* @param statusProgress
* @param statusNote
* @param en
* @param noProgress
* @param noNote
* @return *ExamplepbSimpleMessage
*/
func (a EchoServiceApi) EchoDelete(id string, num string) (*ExamplepbSimpleMessage, *APIResponse, error) {
func (a EchoServiceApi) EchoDelete(id string, num string, lineNum string, lang string, statusProgress string, statusNote string, en string, noProgress string, noNote string) (*ExamplepbSimpleMessage, *APIResponse, error) {

var localVarHttpMethod = strings.ToUpper("Delete")
// create path and map variables
Expand All @@ -247,6 +495,13 @@ func (a EchoServiceApi) EchoDelete(id string, num string) (*ExamplepbSimpleMessa
}
localVarQueryParams.Add("id", a.Configuration.APIClient.ParameterToString(id, ""))
localVarQueryParams.Add("num", a.Configuration.APIClient.ParameterToString(num, ""))
localVarQueryParams.Add("line_num", a.Configuration.APIClient.ParameterToString(lineNum, ""))
localVarQueryParams.Add("lang", a.Configuration.APIClient.ParameterToString(lang, ""))
localVarQueryParams.Add("status.progress", a.Configuration.APIClient.ParameterToString(statusProgress, ""))
localVarQueryParams.Add("status.note", a.Configuration.APIClient.ParameterToString(statusNote, ""))
localVarQueryParams.Add("en", a.Configuration.APIClient.ParameterToString(en, ""))
localVarQueryParams.Add("no.progress", a.Configuration.APIClient.ParameterToString(noProgress, ""))
localVarQueryParams.Add("no.note", a.Configuration.APIClient.ParameterToString(noNote, ""))

// to determine the Content-Type header
localVarHttpContentTypes := []string{ "application/json", }
Expand Down
19 changes: 19 additions & 0 deletions examples/clients/echo/examplepb_embedded.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
/*
* Echo Service
*
* Echo Service API consists of a single service which returns a message.
*
* OpenAPI spec version: version not set
*
* Generated by: https://github.com/swagger-api/swagger-codegen.git
*/

package echo

// Embedded represents a message embedded in SimpleMessage.
type ExamplepbEmbedded struct {

Progress string `json:"progress,omitempty"`

Note string `json:"note,omitempty"`
}
10 changes: 10 additions & 0 deletions examples/clients/echo/examplepb_simple_message.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,14 @@ type ExamplepbSimpleMessage struct {
Id string `json:"id,omitempty"`

Num string `json:"num,omitempty"`

LineNum string `json:"line_num,omitempty"`

Lang string `json:"lang,omitempty"`

Status ExamplepbEmbedded `json:"status,omitempty"`

En string `json:"en,omitempty"`

No ExamplepbEmbedded `json:"no,omitempty"`
}
Loading

0 comments on commit 9a88c4b

Please sign in to comment.