对同一个 RestSharp Request 使用多个函数实用吗?

Is it practical to use multiple functions for the same RestSharp Request?

使用相同的 RestSharp 参数但不同的 return 语句创建多个函数是否可行?

例如:

我会获取 IP 地址

    public string getIP()
        {
            RestClient client = new RestClient("http://ip-api.com/json/?fields=9009");
            var request = new RestRequest(Method.GET);
            IRestResponse response = client.Execute(request);
            string source = (response.Content);
            dynamic data = JObject.Parse(source);
            string IPAddress = data.query;
            return IPAddress;
            
        }

使用另一个像 getCity() 然后使用

好吗
string City = data.city;
return City;

等等?

如果每个APIURL都一样,最好只调用一次API,多次解析数据,每个字段一次

如果 URL 发生变化(例如 http://ip-api.com/json/?fields=9009 for IP, http://city-api.com/json/?fields=9009 表示城市等),那么您将编写多个函数。

您应该能够使用输出参数 return 多个值:https://www.c-sharpcorner.com/UploadFile/9b86d4/how-to-return-multiple-values-from-a-function-in-C-Sharp/

使用 RestSharp 的主要优势是其内置的序列化功能和简单的参数处理。因此,在这种特殊情况下,最好的方法是创建一个小的 DTO 来表示响应。

public record IpApiResponse(
    string Country, string City, string Zip,
    string Timezone, string Isp, string Query
);

然后,您可以调用

var response = await client.GetJsonAsync<IpApiResponse>();

示例显示 RestSharp v107 API。记住不要为每次调用实例化一个新的 RestClient 实例。