Skip to content

Commit ba7557f

Browse files
authored
Fix response_body (#5510)
* Fix response_body * generate
1 parent 41bfbec commit ba7557f

14 files changed

+526
-78
lines changed

examples/internal/clients/responsebody/BUILD.bazel

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ go_library(
1111
"model_examplepb_repeated_response_strings.go",
1212
"model_examplepb_response_body_out.go",
1313
"model_examplepb_response_body_out_response.go",
14+
"model_examplepb_response_body_value.go",
1415
"model_protobuf_any.go",
1516
"model_response_response_type.go",
1617
"model_rpc_status.go",

examples/internal/clients/responsebody/api/swagger.yaml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,26 @@ paths:
3232
description: "An unexpected error response."
3333
schema:
3434
$ref: "#/definitions/rpcStatus"
35+
/responsebody/samename/{data}:
36+
get:
37+
tags:
38+
- "ResponseBodyService"
39+
operationId: "ResponseBodyService_GetResponseBodySameName"
40+
parameters:
41+
- name: "data"
42+
in: "path"
43+
required: true
44+
type: "string"
45+
x-exportParamName: "Data"
46+
responses:
47+
200:
48+
description: ""
49+
schema:
50+
type: "string"
51+
default:
52+
description: "An unexpected error response."
53+
schema:
54+
$ref: "#/definitions/rpcStatus"
3555
/responsebody/stream/{data}:
3656
get:
3757
tags:
@@ -145,6 +165,11 @@ definitions:
145165
type: "string"
146166
example:
147167
data: "data"
168+
examplepbResponseBodyValue:
169+
type: "object"
170+
properties:
171+
responseBodyValue:
172+
type: "string"
148173
protobufAny:
149174
type: "object"
150175
properties:

examples/internal/clients/responsebody/api_response_body_service.go

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,105 @@ func (a *ResponseBodyServiceApiService) ResponseBodyServiceGetResponseBody(ctx c
124124
return localVarReturnValue, localVarHttpResponse, nil
125125
}
126126

127+
/*
128+
ResponseBodyServiceApiService
129+
* @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
130+
* @param data
131+
132+
@return string
133+
*/
134+
func (a *ResponseBodyServiceApiService) ResponseBodyServiceGetResponseBodySameName(ctx context.Context, data string) (string, *http.Response, error) {
135+
var (
136+
localVarHttpMethod = strings.ToUpper("Get")
137+
localVarPostBody interface{}
138+
localVarFileName string
139+
localVarFileBytes []byte
140+
localVarReturnValue string
141+
)
142+
143+
// create path and map variables
144+
localVarPath := a.client.cfg.BasePath + "/responsebody/samename/{data}"
145+
localVarPath = strings.Replace(localVarPath, "{"+"data"+"}", fmt.Sprintf("%v", data), -1)
146+
147+
localVarHeaderParams := make(map[string]string)
148+
localVarQueryParams := url.Values{}
149+
localVarFormParams := url.Values{}
150+
151+
// to determine the Content-Type header
152+
localVarHttpContentTypes := []string{"application/json"}
153+
154+
// set Content-Type header
155+
localVarHttpContentType := selectHeaderContentType(localVarHttpContentTypes)
156+
if localVarHttpContentType != "" {
157+
localVarHeaderParams["Content-Type"] = localVarHttpContentType
158+
}
159+
160+
// to determine the Accept header
161+
localVarHttpHeaderAccepts := []string{"application/json"}
162+
163+
// set Accept header
164+
localVarHttpHeaderAccept := selectHeaderAccept(localVarHttpHeaderAccepts)
165+
if localVarHttpHeaderAccept != "" {
166+
localVarHeaderParams["Accept"] = localVarHttpHeaderAccept
167+
}
168+
r, err := a.client.prepareRequest(ctx, localVarPath, localVarHttpMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, localVarFileName, localVarFileBytes)
169+
if err != nil {
170+
return localVarReturnValue, nil, err
171+
}
172+
173+
localVarHttpResponse, err := a.client.callAPI(r)
174+
if err != nil || localVarHttpResponse == nil {
175+
return localVarReturnValue, localVarHttpResponse, err
176+
}
177+
178+
localVarBody, err := ioutil.ReadAll(localVarHttpResponse.Body)
179+
localVarHttpResponse.Body.Close()
180+
if err != nil {
181+
return localVarReturnValue, localVarHttpResponse, err
182+
}
183+
184+
if localVarHttpResponse.StatusCode < 300 {
185+
// If we succeed, return the data, otherwise pass on to decode error.
186+
err = a.client.decode(&localVarReturnValue, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
187+
if err == nil {
188+
return localVarReturnValue, localVarHttpResponse, err
189+
}
190+
}
191+
192+
if localVarHttpResponse.StatusCode >= 300 {
193+
newErr := GenericSwaggerError{
194+
body: localVarBody,
195+
error: localVarHttpResponse.Status,
196+
}
197+
198+
if localVarHttpResponse.StatusCode == 200 {
199+
var v string
200+
err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
201+
if err != nil {
202+
newErr.error = err.Error()
203+
return localVarReturnValue, localVarHttpResponse, newErr
204+
}
205+
newErr.model = v
206+
return localVarReturnValue, localVarHttpResponse, newErr
207+
}
208+
209+
if localVarHttpResponse.StatusCode == 0 {
210+
var v RpcStatus
211+
err = a.client.decode(&v, localVarBody, localVarHttpResponse.Header.Get("Content-Type"));
212+
if err != nil {
213+
newErr.error = err.Error()
214+
return localVarReturnValue, localVarHttpResponse, newErr
215+
}
216+
newErr.model = v
217+
return localVarReturnValue, localVarHttpResponse, newErr
218+
}
219+
220+
return localVarReturnValue, localVarHttpResponse, newErr
221+
}
222+
223+
return localVarReturnValue, localVarHttpResponse, nil
224+
}
225+
127226
/*
128227
ResponseBodyServiceApiService
129228
* @param ctx context.Context - for authentication, logging, cancellation, deadlines, tracing, etc. Passed from http.Request or context.Background().
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# ExamplepbResponseBodyValue
2+
3+
## Properties
4+
Name | Type | Description | Notes
5+
------------ | ------------- | ------------- | -------------
6+
**ResponseBodyValue** | **string** | | [optional] [default to null]
7+
8+
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
9+
10+

examples/internal/clients/responsebody/docs/ResponseBodyServiceApi.md

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ All URIs are relative to *https://localhost*
55
Method | HTTP request | Description
66
------------- | ------------- | -------------
77
[**ResponseBodyServiceGetResponseBody**](ResponseBodyServiceApi.md#ResponseBodyServiceGetResponseBody) | **Get** /responsebody/{data} |
8+
[**ResponseBodyServiceGetResponseBodySameName**](ResponseBodyServiceApi.md#ResponseBodyServiceGetResponseBodySameName) | **Get** /responsebody/samename/{data} |
89
[**ResponseBodyServiceGetResponseBodyStream**](ResponseBodyServiceApi.md#ResponseBodyServiceGetResponseBodyStream) | **Get** /responsebody/stream/{data} |
910
[**ResponseBodyServiceListResponseBodies**](ResponseBodyServiceApi.md#ResponseBodyServiceListResponseBodies) | **Get** /responsebodies/{data} |
1011
[**ResponseBodyServiceListResponseStrings**](ResponseBodyServiceApi.md#ResponseBodyServiceListResponseStrings) | **Get** /responsestrings/{data} |
@@ -36,6 +37,32 @@ No authorization required
3637

3738
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
3839

40+
# **ResponseBodyServiceGetResponseBodySameName**
41+
> string ResponseBodyServiceGetResponseBodySameName(ctx, data)
42+
43+
44+
### Required Parameters
45+
46+
Name | Type | Description | Notes
47+
------------- | ------------- | ------------- | -------------
48+
**ctx** | **context.Context** | context for authentication, logging, cancellation, deadlines, tracing, etc.
49+
**data** | **string**| |
50+
51+
### Return type
52+
53+
**string**
54+
55+
### Authorization
56+
57+
No authorization required
58+
59+
### HTTP request headers
60+
61+
- **Content-Type**: application/json
62+
- **Accept**: application/json
63+
64+
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
65+
3966
# **ResponseBodyServiceGetResponseBodyStream**
4067
> StreamResultOfExamplepbResponseBodyOut ResponseBodyServiceGetResponseBodyStream(ctx, data)
4168
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
/*
2+
* examples/internal/proto/examplepb/response_body_service.proto
3+
*
4+
* No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)
5+
*
6+
* API version: version not set
7+
* Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
8+
*/
9+
10+
package responsebody
11+
12+
type ExamplepbResponseBodyValue struct {
13+
ResponseBodyValue string `json:"responseBodyValue,omitempty"`
14+
}

examples/internal/integration/integration_test.go

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1817,6 +1817,29 @@ func testResponseBody(t *testing.T, port int) {
18171817
}
18181818
}
18191819

1820+
func TestResponseBodySameName(t *testing.T) {
1821+
apiURL := "http://localhost:8088/responsebody/samename/foo"
1822+
resp, err := http.Get(apiURL)
1823+
if err != nil {
1824+
t.Fatalf("http.Get(%q) failed with %v; want success", apiURL, err)
1825+
}
1826+
1827+
defer resp.Body.Close()
1828+
buf, err := io.ReadAll(resp.Body)
1829+
if err != nil {
1830+
t.Fatalf("io.ReadAll(resp.Body) failed with %v; want success", err)
1831+
}
1832+
1833+
if got, want := resp.StatusCode, http.StatusOK; got != want {
1834+
t.Errorf("resp.StatusCode = %d; want %d", got, want)
1835+
t.Logf("%s", buf)
1836+
}
1837+
1838+
if diff := cmp.Diff(string(buf), `"foo"`); diff != "" {
1839+
t.Error(diff)
1840+
}
1841+
}
1842+
18201843
func TestResponseBodyStream(t *testing.T) {
18211844
apiURL := "http://localhost:8088/responsebody/stream/foo"
18221845
resp, err := http.Get(apiURL)

0 commit comments

Comments
 (0)