1
1
using System;
2
2
using System.Collections.Generic;
3
+ using RestSharp;
3
4
using { {invokerPackage} };
4
5
using { {modelPackage} };
5
6
{ {#imports} }
@@ -9,101 +10,73 @@ namespace {{package}} {
9
10
{{#operations} }
10
11
public class { {classname} } {
11
12
string basePath;
12
- private readonly ApiInvoker apiInvoker = ApiInvoker.GetInstance() ;
13
+ protected RestClient restClient ;
13
14
14
15
public {{classname} }(String basePath = "{ {basePath} }")
15
16
{
16
17
this.basePath = basePath;
18
+ this.restClient = new RestClient(basePath);
17
19
}
18
20
19
- public ApiInvoker getInvoker() {
20
- return apiInvoker;
21
- }
22
-
23
- // Sets the endpoint base url for the services being accessed
24
- public void setBasePath (string basePath) {
21
+ /// < summary >
22
+ /// Sets the endpoint base url for the services being accessed
23
+ /// </ summary >
24
+ /// < param name = " basePath " > Base URL
25
+ /// < returns ></ returns >
26
+ public void SetBasePath (string basePath) {
25
27
this.basePath = basePath;
26
28
}
27
29
28
- // Gets the endpoint base url for the services being accessed
29
- public String getBasePath() {
30
- return basePath;
30
+ /// <summary >
31
+ /// Gets the endpoint base url for the services being accessed
32
+ /// <returns >Base URL</returns >
33
+ /// </summary >
34
+ public String GetBasePath() {
35
+ return this.basePath;
31
36
}
32
37
33
38
{ {#operation} }
34
-
39
+
35
40
/// <summary >
36
41
/// { {summary} } { {notes} }
37
42
/// </summary >
38
- { {#allParams} }/// <param name =" { { paramName} } " >{ {description} }</param >
39
- { {#hasMore} } { {/hasMore} }{ {/allParams} }
40
- /// <returns ></returns >
41
- public { {#returnType} }{ {{returnType} }} { {/returnType} }{ {^returnType} }void { {/returnType} } { {nickname} } ({ {#allParams} }{ {{dataType} }} { {paramName} }{ {#hasMore} }, { {/hasMore} }{ {/allParams} }) {
42
- // create path and map variables
43
- var path = " {{path}}" .Replace(" {format}" ," json" ){{#pathParams} }.Replace("{ " + " {{baseName} }" + "}", apiInvoker.ParameterToString({ {{paramName} }})){ {/pathParams} };
43
+ { {#allParams} } /// <param name =" { { paramName} } " >{ {description} }</param >
44
+ { {/allParams} }
45
+ /// <returns >{ {#returnType} }{ {{returnType} }}{ {/returnType} }</returns >
46
+ public { {#returnType} }{ {{returnType} }}{ {/returnType} }{ {^returnType} }void{ {/returnType} } { {nickname} } ({ {#allParams} }{ {{dataType} }} { {paramName} }{ {#hasMore} }, { {/hasMore} }{ {/allParams} }) {
44
47
45
- // query params
46
- var queryParams = new Dictionary<String , String >();
47
- var headerParams = new Dictionary<String , String >();
48
- var formParams = new Dictionary<String , object >();
48
+ var _request = new RestRequest(" {{path}}" , Method.{{httpMethod} });
49
49
50
- { {#requiredParamCount} }
51
- // verify required params are set
52
- if ({ {/requiredParamCount} }{ {#requiredParams} } { {paramName} } == null { {#hasMore} }|| { {/hasMore} }{ {/requiredParams} }{ {#requiredParamCount} }) {
53
- throw new ApiException(400, " missing required params" );
54
- }
55
- { {/requiredParamCount} }
50
+ { {#allParams} }{ {#required} }
51
+ // verify the required parameter '{ {paramName} }' is set
52
+ if ({ {paramName} } == null) throw new ApiException(400, "Missing required parameter '{ {paramName} }' when calling { {nickname} }");
53
+ { {/required} }{ {/allParams} }
56
54
57
- { {#queryParams} }if ({ {paramName} } != null){
58
- queryParams.Add(" {{baseName}}" , apiInvoker.ParameterToString({{paramName} }));
55
+ // add default header, if any
56
+ foreach(KeyValuePair<string , string > defaultHeader in ApiInvoker.GetDefaultHeader())
57
+ {
58
+ _request.AddHeader(defaultHeader.Key, defaultHeader.Value);
59
59
}
60
- { {/queryParams} }
61
60
62
- { {#headerParams} }headerParams.Add("{ {baseName} }", apiInvoker.ParameterToString({ {paramName} }));
61
+ _request.AddUrlSegment("format", "json"); // set format to json by default
62
+ { {#pathParams} }_request.AddUrlSegment("{ {baseName} }", ApiInvoker.ParameterToString({ {{paramName} }})); // path (url segment) parameter
63
+ { {/pathParams} }
64
+ { {#queryParams} } if ({ {paramName} } != null) _request.AddParameter("{ {baseName} }", ApiInvoker.ParameterToString({ {paramName} })); // query parameter
65
+ { {/queryParams} }
66
+ { {#headerParams} } if ({ {paramName} } != null) _request.AddHeader("{ {baseName} }", ApiInvoker.ParameterToString({ {paramName} })); // header parameter
63
67
{ {/headerParams} }
64
-
65
- { {#formParams} }if ({ {paramName} } != null){
66
- if ({{paramName} } is byte[]) {
67
- formParams.Add(" {{baseName}}" , {{paramName} });
68
- } else {
69
- formParams.Add(" {{baseName}}" , apiInvoker.ParameterToString({{paramName} }));
70
- }
71
- }
68
+ { {#formParams} }if ({ {paramName} } != null) { {#isFile} }_request.AddFile("{ {baseName} }", { {paramName} });{ {/isFile} }{ {^isFile} }_request.AddParameter("{ {baseName} }", ApiInvoker.ParameterToString({ {paramName} })); // form parameter{ {/isFile} }
72
69
{ {/formParams} }
70
+ { {#bodyParam} }_request.AddParameter("application/json", ApiInvoker.Serialize({ {paramName} }), ParameterType.RequestBody); // http body (model) parameter
71
+ { {/bodyParam} }
73
72
74
- try {
75
- if (typeof({{#returnType} }{ {{returnType} }}{ {/returnType} }{ {^returnType} }void{ {/returnType} }) == typeof(byte[])) {
76
- {{#returnType} }
77
- var response = apiInvoker.invokeBinaryAPI(basePath, path, "GET", queryParams, null, headerParams, formParams);
78
- return ((object)response) as { {{returnType} }};
79
- { {/returnType} }
80
- { {^returnType} }
81
- apiInvoker.invokeBinaryAPI(basePath, path, "GET", queryParams, null, headerParams, formParams);
82
- return;
83
- { {/returnType} }
84
- } else {
85
- {{#returnType} }
86
- var response = apiInvoker.invokeAPI(basePath, path, "{ {httpMethod} }", queryParams, { {#bodyParam} }{ {paramName} }{ {/bodyParam} }{ {^bodyParam} }null{ {/bodyParam} }, headerParams, formParams);
87
- if (response != null){
88
- return ({{{returnType} }}) ApiInvoker.deserialize(response, typeof({ {{returnType} }}));
89
- }
90
- else {
91
- return null;
92
- }
93
- { {/returnType} }
94
- { {^returnType} }
95
- apiInvoker.invokeAPI(basePath, path, "{ {httpMethod} }", queryParams, { {#bodyParam} }{ {paramName} }{ {/bodyParam} }{ {^bodyParam} }null{ {/bodyParam} }, headerParams, formParams);
96
- return;
97
- { {/returnType} }
98
- }
99
- } catch (ApiException ex) {
100
- if (ex.ErrorCode == 404) {
101
- return {{#returnType} }null{ {/returnType} };
102
- }
103
- else {
104
- throw ex;
105
- }
73
+ // make the HTTP request
74
+ IRestResponse response = restClient.Execute(_request);
75
+ if (((int)response.StatusCode) >= 400) {
76
+ throw new ApiException ((int)response.StatusCode, " Error calling {{nickname}}: " + response.Content);
106
77
}
78
+ { {#returnType} }return ({ {{returnType} }}) ApiInvoker.Deserialize(response.Content, typeof({ {{returnType} }}));{ {/returnType} }{ {^returnType} }
79
+ return;{ {/returnType} }
107
80
}
108
81
{ {/operation} }
109
82
}
0 commit comments