Skip to content

Commit 6b3a4d0

Browse files
committed
Added more docs comments to parameter extensions
1 parent 0843d18 commit 6b3a4d0

File tree

2 files changed

+128
-6
lines changed

2 files changed

+128
-6
lines changed

src/RestSharp/Parameters/FileParameter.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,6 @@ Stream GetFile() {
7676
public static FileParameter Create(
7777
string name,
7878
Func<Stream> getFile,
79-
long contentLength,
8079
string fileName,
8180
string? contentType = null
8281
)

src/RestSharp/Request/RestRequestExtensions.cs

Lines changed: 128 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -66,34 +66,106 @@ public static RestRequest AddOrUpdateParameter(this RestRequest request, string
6666
public static RestRequest AddOrUpdateParameter<T>(this RestRequest request, string name, T value, bool encode = true) where T : struct
6767
=> request.AddOrUpdateParameter(name, value.ToString(), encode);
6868

69+
/// <summary>
70+
/// Adds a URL segment parameter to the request. The resource URL must have a placeholder for the parameter for it to work.
71+
/// For example, if you add a URL segment parameter with the name "id", the resource URL should contain {id} in its path.
72+
/// </summary>
73+
/// <param name="request">Request instance</param>
74+
/// <param name="name">Name of the parameter, must be matching a placeholder in the resource URL as {name}</param>
75+
/// <param name="value">Value of the parameter</param>
76+
/// <param name="encode">Encode the value or not, default true</param>
77+
/// <returns></returns>
6978
public static RestRequest AddUrlSegment(this RestRequest request, string name, string value, bool encode = true)
7079
=> request.AddParameter(new UrlSegmentParameter(name, value, encode));
7180

81+
/// <summary>
82+
/// Adds a URL segment parameter to the request. The resource URL must have a placeholder for the parameter for it to work.
83+
/// For example, if you add a URL segment parameter with the name "id", the resource URL should contain {id} in its path.
84+
/// </summary>
85+
/// <param name="request">Request instance</param>
86+
/// <param name="name">Name of the parameter, must be matching a placeholder in the resource URL as {name}</param>
87+
/// <param name="value">Value of the parameter</param>
88+
/// <param name="encode">Encode the value or not, default true</param>
89+
/// <returns></returns>
7290
public static RestRequest AddUrlSegment<T>(this RestRequest request, string name, T value, bool encode = true) where T : struct
7391
=> request.AddUrlSegment(name, Ensure.NotNull(value.ToString(), nameof(value)), encode);
7492

93+
/// <summary>
94+
/// Adds a query string parameter to the request. The request resource should not contain any placeholders for this parameter.
95+
/// The parameter will be added to the request URL as a query string using name=value format.
96+
/// </summary>
97+
/// <param name="request">Request instance</param>
98+
/// <param name="name">Parameter name</param>
99+
/// <param name="value">Parameter value</param>
100+
/// <param name="encode">Encode the value or not, default true</param>
101+
/// <returns></returns>
75102
public static RestRequest AddQueryParameter(this RestRequest request, string name, string? value, bool encode = true)
76103
=> request.AddParameter(new QueryParameter(name, value, encode));
77104

105+
/// <summary>
106+
/// Adds a query string parameter to the request. The request resource should not contain any placeholders for this parameter.
107+
/// The parameter will be added to the request URL as a query string using name=value format.
108+
/// </summary>
109+
/// <param name="request">Request instance</param>
110+
/// <param name="name">Parameter name</param>
111+
/// <param name="value">Parameter value</param>
112+
/// <param name="encode">Encode the value or not, default true</param>
113+
/// <returns></returns>
78114
public static RestRequest AddQueryParameter<T>(this RestRequest request, string name, T value, bool encode = true) where T : struct
79115
=> request.AddQueryParameter(name, value.ToString(), encode);
80116

117+
/// <summary>
118+
/// Adds a header to the request. RestSharp will try to separate request and content headers when calling the resource.
119+
/// </summary>
120+
/// <param name="request">Request instance</param>
121+
/// <param name="name">Header name</param>
122+
/// <param name="value">Header value</param>
123+
/// <returns></returns>
81124
public static RestRequest AddHeader(this RestRequest request, string name, string value) {
82125
CheckAndThrowsForInvalidHost(name, value);
83126
return request.AddParameter(new HeaderParameter(name, value));
84127
}
85128

129+
/// <summary>
130+
/// Adds a header to the request. RestSharp will try to separate request and content headers when calling the resource.
131+
/// </summary>
132+
/// <param name="request">Request instance</param>
133+
/// <param name="name">Header name</param>
134+
/// <param name="value">Header value</param>
135+
/// <returns></returns>
86136
public static RestRequest AddHeader<T>(this RestRequest request, string name, T value) where T : struct
87137
=> request.AddHeader(name, Ensure.NotNull(value.ToString(), nameof(value)));
88138

139+
/// <summary>
140+
/// Adds or updates the request header. RestSharp will try to separate request and content headers when calling the resource.
141+
/// Existing header with the same name will be replaced.
142+
/// </summary>
143+
/// <param name="request">Request instance</param>
144+
/// <param name="name">Header name</param>
145+
/// <param name="value">Header value</param>
146+
/// <returns></returns>
89147
public static RestRequest AddOrUpdateHeader(this RestRequest request, string name, string value) {
90148
CheckAndThrowsForInvalidHost(name, value);
91149
return request.AddOrUpdateParameter(new HeaderParameter(name, value));
92150
}
93151

152+
/// <summary>
153+
/// Adds or updates the request header. RestSharp will try to separate request and content headers when calling the resource.
154+
/// Existing header with the same name will be replaced.
155+
/// </summary>
156+
/// <param name="request">Request instance</param>
157+
/// <param name="name">Header name</param>
158+
/// <param name="value">Header value</param>
159+
/// <returns></returns>
94160
public static RestRequest AddOrUpdateHeader<T>(this RestRequest request, string name, T value) where T : struct
95161
=> request.AddOrUpdateHeader(name, Ensure.NotNull(value.ToString(), nameof(value)));
96162

163+
/// <summary>
164+
/// Adds multiple headers to the request, using the key-value pairs provided.
165+
/// </summary>
166+
/// <param name="request">Request instance</param>
167+
/// <param name="headers">Collection of key-value pairs, where key will be used as header name, and value as header value</param>
168+
/// <returns></returns>
97169
public static RestRequest AddHeaders(this RestRequest request, ICollection<KeyValuePair<string, string>> headers) {
98170
CheckAndThrowsDuplicateKeys(headers);
99171

@@ -104,6 +176,12 @@ public static RestRequest AddHeaders(this RestRequest request, ICollection<KeyVa
104176
return request;
105177
}
106178

179+
/// <summary>
180+
/// Adds or updates multiple headers to the request, using the key-value pairs provided. Existing headers with the same name will be replaced.
181+
/// </summary>
182+
/// <param name="request">Request instance</param>
183+
/// <param name="headers">Collection of key-value pairs, where key will be used as header name, and value as header value</param>
184+
/// <returns></returns>
107185
public static RestRequest AddOrUpdateHeaders(this RestRequest request, ICollection<KeyValuePair<string, string>> headers) {
108186
CheckAndThrowsDuplicateKeys(headers);
109187

@@ -114,9 +192,42 @@ public static RestRequest AddOrUpdateHeaders(this RestRequest request, ICollecti
114192
return request;
115193
}
116194

195+
/// <summary>
196+
/// Adds a parameter of a given type to the request. It will create a typed parameter instance based on the type argument.
197+
/// It is not recommended to use this overload unless you must, as it doesn't provide any restrictions, and if the name-value-type
198+
/// combination doesn't match, it will throw.
199+
/// </summary>
200+
/// <param name="request">Request instance</param>
201+
/// <param name="name">Name of the parameter, must be matching a placeholder in the resource URL as {name}</param>
202+
/// <param name="value">Value of the parameter</param>
203+
/// <param name="type">Enum value specifying what kind of parameter is being added</param>
204+
/// <param name="encode">Encode the value or not, default true</param>
205+
/// <returns></returns>
117206
public static RestRequest AddParameter(this RestRequest request, string? name, object value, ParameterType type, bool encode = true)
118207
=> request.AddParameter(Parameter.CreateParameter(name, value, type, encode));
119208

209+
/// <summary>
210+
/// Adds or updates request parameter of a given type. It will create a typed parameter instance based on the type argument.
211+
/// Parameter will be added or updated based on its name. If the request has a parameter with the same name, it will be updated.
212+
/// It is not recommended to use this overload unless you must, as it doesn't provide any restrictions, and if the name-value-type
213+
/// combination doesn't match, it will throw.
214+
/// </summary>
215+
/// <param name="request">Request instance</param>
216+
/// <param name="name">Name of the parameter, must be matching a placeholder in the resource URL as {name}</param>
217+
/// <param name="value">Value of the parameter</param>
218+
/// <param name="type">Enum value specifying what kind of parameter is being added</param>
219+
/// <param name="encode">Encode the value or not, default true</param>
220+
/// <returns></returns>
221+
public static RestRequest AddOrUpdateParameter(this RestRequest request, string name, object value, ParameterType type, bool encode = true)
222+
=> request.AddOrUpdateParameter(Parameter.CreateParameter(name, value, type, encode));
223+
224+
/// <summary>
225+
/// Adds or updates request parameter, given the parameter instance, for example <see cref="QueryParameter"/> or <see cref="UrlSegmentParameter"/>.
226+
/// It will replace an existing parameter with the same name.
227+
/// </summary>
228+
/// <param name="request">Request instance</param>
229+
/// <param name="parameter">Parameter instance</param>
230+
/// <returns></returns>
120231
public static RestRequest AddOrUpdateParameter(this RestRequest request, Parameter parameter) {
121232
var p = request.Parameters.FirstOrDefault(x => x.Name == parameter.Name && x.Type == parameter.Type);
122233

@@ -126,16 +237,20 @@ public static RestRequest AddOrUpdateParameter(this RestRequest request, Paramet
126237
return request;
127238
}
128239

240+
/// <summary>
241+
/// Adds or updates multiple request parameters, given the parameter instance, for example
242+
/// <see cref="QueryParameter"/> or <see cref="UrlSegmentParameter"/>. Parameters with the same name will be replaced.
243+
/// </summary>
244+
/// <param name="request">Request instance</param>
245+
/// <param name="parameters">Collection of parameter instances</param>
246+
/// <returns></returns>
129247
public static RestRequest AddOrUpdateParameters(this RestRequest request, IEnumerable<Parameter> parameters) {
130248
foreach (var parameter in parameters)
131249
request.AddOrUpdateParameter(parameter);
132250

133251
return request;
134252
}
135253

136-
public static RestRequest AddOrUpdateParameter(this RestRequest request, string name, object value, ParameterType type, bool encode = true)
137-
=> request.AddOrUpdateParameter(Parameter.CreateParameter(name, value, type, encode));
138-
139254
/// <summary>
140255
/// Adds a file parameter to the request body. The file will be read from disk as a stream.
141256
/// </summary>
@@ -159,15 +274,23 @@ public static RestRequest AddFile(this RestRequest request, string name, string
159274
public static RestRequest AddFile(this RestRequest request, string name, byte[] bytes, string filename, string? contentType = null)
160275
=> request.AddFile(FileParameter.Create(name, bytes, filename, contentType));
161276

277+
/// <summary>
278+
/// Adds a file attachment to the request, where the file content will be retrieved from a given stream
279+
/// </summary>
280+
/// <param name="request">Request instance</param>
281+
/// <param name="name">Parameter name</param>
282+
/// <param name="getFile">Function that returns a stream with the file content</param>
283+
/// <param name="fileName">File name</param>
284+
/// <param name="contentType">Optional: content type. Default is "application/octet-stream"</param>
285+
/// <returns></returns>
162286
public static RestRequest AddFile(
163287
this RestRequest request,
164288
string name,
165289
Func<Stream> getFile,
166290
string fileName,
167-
long contentLength,
168291
string? contentType = null
169292
)
170-
=> request.AddFile(FileParameter.Create(name, getFile, contentLength, fileName, contentType));
293+
=> request.AddFile(FileParameter.Create(name, getFile, fileName, contentType));
171294

172295
/// <summary>
173296
/// Adds a body parameter to the request

0 commit comments

Comments
 (0)