blob: fbf470c33da4e9dce6f969fd4a3056f0dc5b3346 [file] [log] [blame]
package {{apiPackage}};
import static org.springframework.http.MediaType.*;
import java.util.List;
import java.util.Map;
import java.util.HashMap;
{{#imports}}import {{import}};
{{/imports}}
import org.apache.servicecomb.provider.rest.common.RestSchema;
import org.apache.servicecomb.provider.springmvc.reference.RestTemplateBuilder;
import org.springframework.util.MultiValueMap;
import org.springframework.http.*;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.multipart.MultipartFile;
{{#operations}}
public class {{classname}} {
{{#operation}}
public ResponseEntity<{{>returnTypes}}> {{operationId}}({{#allParams}}{{>consumer/queryParamsConsumer}}{{>consumer/pathParamsConsumer}}{{>consumer/headerParamsConsumer}}{{>consumer/bodyParamsConsumer}}{{>consumer/formParamsConsumer}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) {
Map<String, Object> params = new HashMap<>();
HttpEntity httpEntity = null;
HttpHeaders headers = new HttpHeaders();
{{#allParams}}
{{#isPathParam}}
params.put("{{paramName}}",{{paramName}});
{{/isPathParam}}
{{#isQueryParam}}
params.put("{{paramName}}",{{paramName}});
{{/isQueryParam}}
{{#isHeaderParam}}
headers.add("{{paramName}}",{{paramName}});
{{/isHeaderParam}}
{{#isFormParam}}
{{#notFile}}
httpEntity = new HttpEntity<{{{dataType}}}>({{paramName}}, headers);
{{/notFile}}
{{#isFile}}
httpEntity = new HttpEntity<MultipartFile>({{paramName}}, headers);
{{/isFile}}
{{/isFormParam}}
{{#isBodyParam}}
httpEntity = new HttpEntity<{{{dataType}}}>({{paramName}}, headers);
{{/isBodyParam}}
{{/allParams}}
RestTemplate restTemplate = RestTemplateBuilder.create();
ResponseEntity<{{>returnTypes}}> result = restTemplate.exchange("cse://{{microserviceName}}{{#getRelativeBasePath}}{{basePath}}{{/getRelativeBasePath}}/{{path}}",HttpMethod.{{httpMethod}},httpEntity,{{#getGenericClassType}}{{>returnTypes}}{{/getGenericClassType}}.class,params);
// do something
return result;
}
{{/operation}}
}
{{/operations}}