ASP.NET和C#:您将其余客户端URL存储在哪里?

我在后台的代码中硬编码了我的其余客户端URL,但是在同行查看我的代码时,我被要求将该URL移到配置文件中,以便可以在每个环境中对其进行更改。

Visual Studio 2019现在抱怨,因为我的其余客户端URL本身在URL中具有无效的=作为令牌,并且它期望;作为令牌。

有人遇到过这种情况吗,将其余客户端移动到配置文件是否正确?从理论上讲,这不会改变。

无法共享完整的url,但是突出显示为错误的部分是:version=2.0&details=true

jsyzjzg 回答:ASP.NET和C#:您将其余客户端URL存储在哪里?

我找到了答案。问题出在&符号本身中。转换为&后,Visual Studio突出显示的错误就消失了,我的解决方案又恢复了工作。

,

如果我愿意的话,我只会将这样的基本网址保存在配置文件中

  "WebConfig": {
    "SmsCenterApi": "https://some_site.com/SendService"
  }

在代码中,我可以完成链接

string url = WebConficData.SmsCenterApi+"version=2.0&details=true";

,然后我可以使用url发出一些请求。对于多环境,web.config和appsettings很麻烦。您只需更改每个环境的基本网址即可。

,

我认为您的问题的答案

  

您将其余客户端网址存储在哪里?

     

将其余网址移动到配置文件是否正确?

取决于您如何实现对该URL的其余请求。由于您没有显示有关如何实现rest调用的任何信息,因此我想向您展示一种可能的方式,并希望给您印象,以了解在实现解决方案时应考虑哪些事项。

因此,出于完整性考虑,我们基本上可以将一个休息端点url分成两部分,这可能会影响我们的实现。

基本网址:

"https://www.some-nice-name.com/SomeEndPoint"

和参数

?key1=value1&key2=value2

请牢记这一点,您可以按照以下方式进行拆分:将基本URL和参数存储在配置文件中的两个不同节点/属性中:

{
    "BaseUrl" : "https://www.some-nice-name.com/SomeEndPoint","UrlParams" : "?key1=value1&key2=value2"
}

或者在一个节点/属性中,甚至将每个单个参数对(“ key1 = value1”)拆分为自己的字段。等等,等等……

无论如何,如果我们现在跳入C#代码并实现Rest调用,我们将有各种各样的可能解决方案。对于此示例,我将向您展示如何使用RestSharp NuGet软件包以及为什么它会影响我们对上述问题的决定。

一个简单的例子:

// I will not show the implementation of ReadYourConfigStuff() because its fairly clear what should happen here
var config = ReadYourConfigStuff(); 

// Give the BaseUrl to our REST client
var restClient = new RestClient(config.BaseUrl);

// Just taking GET as we have some GET Parameters
var restRequest = new RestRequest(Method.GET); 
到目前为止,一切都很好。但是我们仍然错过我们的参数吧? 让我们继续吧:
// RestSharp gives us a very nice tool to add GET parameters to our request
restRequest.AddParameter("key1","value1");
restRequest.AddParameter("key2","value2");

这看起来与我们添加到配置文件中的内容完全不同,不是吗?是的,它确实。由于RestSharp为我们提供了一个可以逐个添加参数的工具,因此我们可以自由选择如何在代码中存储和维护参数。如果我们看一下AddParameter定义

public IRestRequest AddParameter(string name,object value);

我们看到第二个参数可以是任何对象。太神奇了!

所以我对您的问题的回答是:是的,您可以将其存储在配置文件中,但是它适合您的实现吗?参数是否固定或更改?您最喜欢的工具希望您如何执行其余请求?

根据这些问题的答案,我将决定是否使用配置文件。

本文链接:https://www.f2er.com/3159263.html

大家都在问