-
-
Notifications
You must be signed in to change notification settings - Fork 2.3k
.pr_agent_accepted_suggestions
| PR 2322 (2025-11-28) |
[possible issue] Fix incorrect method call example
✅ Fix incorrect method call example
Fix an incorrect PostJsonAsync method call example by adding the client instance and using the correct variable for the request body.
docs/versioned_docs/version-v112/intro.md [97-99]
-var response = await PostJsonAsync<AddressUpdateRequest, AddressUpdateResponse>(
- "address/update", request, cancellationToken
+var response = await client.PostJsonAsync<AddressUpdateRequest, AddressUpdateResponse>(
+ "address/update", updatedAddress, cancellationToken
);Suggestion importance[1-10]: 7
__
Why: The suggestion correctly identifies that the provided code example is non-functional as it's missing the client instance and uses an incorrect variable, and the proposed fix makes the example correct and usable.
[possible issue] Fix syntax error and type
✅ Fix syntax error and type
Fix a syntax error by replacing a comma with a semicolon and correct the type from Url to Uri in the RestClient configuration example.
docs/versioned_docs/version-v113/advanced/configuration.md [64-67]
var client = new RestClient(options => {
- options.BaseUrl = new Url("https://localhost:5000/api"),
+ options.BaseUrl = new Uri("https://localhost:5000/api");
options.DisableCharset = true
});Suggestion importance[1-10]: 6
__
Why: The suggestion correctly identifies a syntax error (a comma instead of a semicolon) and a type error (Url instead of Uri) in a documentation code example, improving its correctness and usability.
[possible issue] Fix invalid JSON string format
✅ Fix invalid JSON string format
Correct an invalid JSON string in a code example by enclosing the data key in double quotes as required by the JSON specification.
docs/versioned_docs/version-v113/usage/request.md [256-257]
-const json = "{ data: { foo: \"bar\" } }";
+const json = "{ \"data\": { \"foo\": \"bar\" } }";
request.AddStringBody(json, ContentType.Json);Suggestion importance[1-10]: 6
__
Why: The suggestion correctly identifies that the JSON string in the documentation example is invalid because a key is not quoted, which would cause issues for users copying the code.
[general] Correct a typo in package name
✅ Correct a typo in package name
Correct a typo in the RestSharp.Extensions.DependencyInjection package name mentioned in the changelog.
docs/versioned_docs/version-v113/changelog.md [29]
-* The new package `RestSharp.Extensions.DepdencyInjection` integrates RestSharp with Microsoft DI container and `IHttpClientFactory`.
+* The new package `RestSharp.Extensions.DependencyInjection` integrates RestSharp with Microsoft DI container and `IHttpClientFactory`.Suggestion importance[1-10]: 7
__
Why: The suggestion correctly identifies and fixes a typo in a package name within the changelog, which is crucial for preventing user confusion and errors when trying to install the package.
| PR 2318 (2025-11-27) |
[general] Use a factory for client resolution
✅ Use a factory for client resolution
Register a factory (Func<string, IRestClient>) for IRestClient resolution to allow consumers to dynamically resolve named clients, rather than registering a single transient service.
src/RestSharp.Extensions.DependencyInjection/ServiceCollectionExtensions.cs [25-29]
-services.AddTransient<IRestClient>(sp => {
- var client = sp.GetRequiredService<IHttpClientFactory>().CreateClient(DefaultRestClient);
- return new RestClient(client, options);
- }
-);
+services.AddTransient(sp => {
+ var factory = sp.GetRequiredService<IHttpClientFactory>();
+ return (string name) => new RestClient(factory.CreateClient(name), options);
+});
+services.AddTransient<IRestClient>(sp => sp.GetRequiredService<Func<string, IRestClient>>()(DefaultRestClient));Suggestion importance[1-10]: 8
__
Why: The suggestion provides a robust and correct solution using a factory pattern (Func) to handle the registration and resolution of multiple named RestClient instances, which is a significant improvement over the PR's implementation.
[general] Allow registering multiple named clients
✅ Allow registering multiple named clients
Modify AddRestClient to accept a name parameter to support registering multiple named RestClient instances, instead of using a hardcoded name.
src/RestSharp.Extensions.DependencyInjection/ServiceCollectionExtensions.cs [8-30]
extension(IServiceCollection services) {
/// <summary>
/// Adds a RestClient to the service collection.
/// </summary>
+ /// <param name="name">The name of the client.</param>
/// <param name="options">The configuration options for the RestClient.</param>
[PublicAPI]
- public void AddRestClient(RestClientOptions options) {
+ public void AddRestClient(string name, RestClientOptions options) {
services
- .AddHttpClient(DefaultRestClient)
+ .AddHttpClient(name)
.ConfigureHttpClient(client => RestClient.ConfigureHttpClient(client, options))
.ConfigurePrimaryHttpMessageHandler(() => {
var handler = new HttpClientHandler();
RestClient.ConfigureHttpMessageHandler(handler, options);
return handler;
}
);
services.AddTransient<IRestClient>(sp => {
- var client = sp.GetRequiredService<IHttpClientFactory>().CreateClient(DefaultRestClient);
+ var client = sp.GetRequiredService<IHttpClientFactory>().CreateClient(name);
return new RestClient(client, options);
}
);
}Suggestion importance[1-10]: 5
__
Why: The suggestion correctly identifies a limitation with the hardcoded client name, but the proposed implementation is flawed as it would overwrite the IRestClient registration, making it impossible to resolve different named clients.