19
19
namespace RestSharp ;
20
20
21
21
public static partial class RestClientExtensions {
22
+ /// <summary>
23
+ /// Calls the URL specified in the <code>resource</code> parameter, expecting a JSON response back. Deserializes and returns the response.
24
+ /// </summary>
25
+ /// <param name="client">RestClient instance</param>
26
+ /// <param name="resource">Resource URL</param>
27
+ /// <typeparam name="TResponse">Response object type</typeparam>
28
+ /// <returns>Deserialized response object</returns>
29
+ public static TResponse ? GetJson < TResponse > (
30
+ this RestClient client ,
31
+ string resource )
32
+ => AsyncHelpers . RunSync ( ( ) => client . GetJsonAsync < TResponse > ( resource ) ) ;
33
+
22
34
/// <summary>
23
35
/// Calls the URL specified in the <code>resource</code> parameter, expecting a JSON response back. Deserializes and returns the response.
24
36
/// </summary>
@@ -32,6 +44,29 @@ public static partial class RestClientExtensions {
32
44
return client . GetAsync < TResponse > ( request , cancellationToken ) ;
33
45
}
34
46
47
+ /// <summary>
48
+ /// Calls the URL specified in the <code>resource</code> parameter, expecting a JSON response back. Deserializes and returns the response.
49
+ /// </summary>
50
+ /// <param name="client">RestClient instance</param>
51
+ /// <param name="resource">Resource URL</param>
52
+ /// <param name="parameters">Parameters to pass to the request</param>
53
+ /// <typeparam name="TResponse">Response object type</typeparam>
54
+ /// <returns>Deserialized response object</returns>
55
+ public static TResponse ? GetJson < TResponse > (
56
+ this RestClient client ,
57
+ string resource ,
58
+ object parameters )
59
+ => AsyncHelpers . RunSync ( ( ) => client . GetJsonAsync < TResponse > ( resource , parameters ) ) ;
60
+
61
+ /// <summary>
62
+ /// Calls the URL specified in the <code>resource</code> parameter, expecting a JSON response back. Deserializes and returns the response.
63
+ /// </summary>
64
+ /// <param name="client">RestClient instance</param>
65
+ /// <param name="resource">Resource URL</param>
66
+ /// <param name="parameters">Parameters to pass to the request</param>
67
+ /// <param name="cancellationToken">Cancellation token</param>
68
+ /// <typeparam name="TResponse">Response object type</typeparam>
69
+ /// <returns>Deserialized response object</returns>
35
70
public static Task < TResponse ? > GetJsonAsync < TResponse > (
36
71
this RestClient client ,
37
72
string resource ,
@@ -49,6 +84,23 @@ public static partial class RestClientExtensions {
49
84
return client . GetAsync < TResponse > ( request , cancellationToken ) ;
50
85
}
51
86
87
+ /// <summary>
88
+ /// Serializes the <code>request</code> object to JSON and makes a POST call to the resource specified in the <code>resource</code> parameter.
89
+ /// Expects a JSON response back, deserializes it to <code>TResponse</code> type and returns it.
90
+ /// </summary>
91
+ /// <param name="client">RestClient instance</param>
92
+ /// <param name="resource">Resource URL</param>
93
+ /// <param name="request">Request object, must be serializable to JSON</param>
94
+ /// <typeparam name="TRequest">Request object type</typeparam>
95
+ /// <typeparam name="TResponse">Response object type</typeparam>
96
+ /// <returns>Deserialized response object</returns>
97
+ public static TResponse ? PostJson < TRequest , TResponse > (
98
+ this RestClient client ,
99
+ string resource ,
100
+ TRequest request
101
+ ) where TRequest : class
102
+ => AsyncHelpers . RunSync ( ( ) => client . PostJsonAsync < TRequest , TResponse > ( resource , request ) ) ;
103
+
52
104
/// <summary>
53
105
/// Serializes the <code>request</code> object to JSON and makes a POST call to the resource specified in the <code>resource</code> parameter.
54
106
/// Expects a JSON response back, deserializes it to <code>TResponse</code> type and returns it.
@@ -70,6 +122,22 @@ public static partial class RestClientExtensions {
70
122
return client . PostAsync < TResponse > ( restRequest , cancellationToken ) ;
71
123
}
72
124
125
+ /// <summary>
126
+ /// Serializes the <code>request</code> object to JSON and makes a POST call to the resource specified in the <code>resource</code> parameter.
127
+ /// Expects no response back, just the status code.
128
+ /// </summary>
129
+ /// <param name="client">RestClient instance</param>
130
+ /// <param name="resource">Resource URL</param>
131
+ /// <param name="request">Request object, must be serializable to JSON</param>
132
+ /// <typeparam name="TRequest">Request object type</typeparam>
133
+ /// <returns>Response status code</returns>
134
+ public static HttpStatusCode PostJson < TRequest > (
135
+ this RestClient client ,
136
+ string resource ,
137
+ TRequest request
138
+ ) where TRequest : class
139
+ => AsyncHelpers . RunSync ( ( ) => client . PostJsonAsync ( resource , request ) ) ;
140
+
73
141
/// <summary>
74
142
/// Serializes the <code>request</code> object to JSON and makes a POST call to the resource specified in the <code>resource</code> parameter.
75
143
/// Expects no response back, just the status code.
@@ -91,6 +159,23 @@ public static async Task<HttpStatusCode> PostJsonAsync<TRequest>(
91
159
return response . StatusCode ;
92
160
}
93
161
162
+ /// <summary>
163
+ /// Serializes the <code>request</code> object to JSON and makes a PUT call to the resource specified in the <code>resource</code> parameter.
164
+ /// Expects a JSON response back, deserializes it to <code>TResponse</code> type and returns it.
165
+ /// </summary>
166
+ /// <param name="client">RestClient instance</param>
167
+ /// <param name="resource">Resource URL</param>
168
+ /// <param name="request">Request object, must be serializable to JSON</param>
169
+ /// <typeparam name="TRequest">Request object type</typeparam>
170
+ /// <typeparam name="TResponse">Response object type</typeparam>
171
+ /// <returns>Deserialized response object</returns>
172
+ public static TResponse ? PutJson < TRequest , TResponse > (
173
+ this RestClient client ,
174
+ string resource ,
175
+ TRequest request
176
+ ) where TRequest : class
177
+ => AsyncHelpers . RunSync ( ( ) => client . PutJsonAsync < TRequest , TResponse > ( resource , request ) ) ;
178
+
94
179
/// <summary>
95
180
/// Serializes the <code>request</code> object to JSON and makes a PUT call to the resource specified in the <code>resource</code> parameter.
96
181
/// Expects a JSON response back, deserializes it to <code>TResponse</code> type and returns it.
@@ -112,6 +197,22 @@ public static async Task<HttpStatusCode> PostJsonAsync<TRequest>(
112
197
return client . PutAsync < TResponse > ( restRequest , cancellationToken ) ;
113
198
}
114
199
200
+ /// <summary>
201
+ /// Serializes the <code>request</code> object to JSON and makes a PUT call to the resource specified in the <code>resource</code> parameter.
202
+ /// Expects no response back, just the status code.
203
+ /// </summary>
204
+ /// <param name="client">RestClient instance</param>
205
+ /// <param name="resource">Resource URL</param>
206
+ /// <param name="request">Request object, must be serializable to JSON</param>
207
+ /// <typeparam name="TRequest">Request object type</typeparam>
208
+ /// <returns>Response status code</returns>
209
+ public static HttpStatusCode PutJson < TRequest > (
210
+ this RestClient client ,
211
+ string resource ,
212
+ TRequest request
213
+ ) where TRequest : class
214
+ => AsyncHelpers . RunSync ( ( ) => client . PutJsonAsync ( resource , request ) ) ;
215
+
115
216
/// <summary>
116
217
/// Serializes the <code>request</code> object to JSON and makes a PUT call to the resource specified in the <code>resource</code> parameter.
117
218
/// Expects no response back, just the status code.
0 commit comments