ASP.NET y C #: ¿Dónde almacena la URL del cliente de REST? -- # campo con asp.net campo con rest campo con config campo con visual-studio-2019 camp Relacionados El problema

ASP.NET and C#: where do you store the rest client url?


3
vote

problema

Español

Tengo la URL de la URL de REST CODIFICADA EN MI CÓDIGO DE ATRÁS, PERO TRAVÉS DE LA REVISIÓN DE COMIDADES MI CÓDIGO DE COMENTARIO, FE PIDE QUE MOVARIA LA URL al archivo de configuración para que se pueda cambiar para cada entorno.

Visual Studio 2019 ahora se queja porque mi URL del cliente de descanso tiene un signo de = no válido como token en la propia URL, y espera ; como token en su lugar.

¿Alguna vez alguien ha encontrado esto, y es correcto mover el cliente de REST al archivo de configuración? En teoría que no debe cambiar.

No se puede compartir la URL completa, pero la parte que se resalta como error es esto: version=2.0&details=true .

Original en ingles

I have my rest client url hard-coded in my code-behind, but upon peer-reviewing my code, I was asked to move that url to the config file so that it can be changed for each environment.

Visual Studio 2019 now complains because my rest client url has an invalid = sign as token in the url itself, and it expects ; as token instead.

Has anyone ever come across this, and is it correct to move the rest client to the config file? In theory that should not change.

Can't share the full url, but the part that is highlighted as error is this: version=2.0&details=true.

              
       
       

Lista de respuestas

3
 
vote
vote
La mejor respuesta
 

Si haré que ahorraré en la URL de la base de solo archivo de configuración como esta

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

y en el código puedo completar el enlace

  getNicknames0  

Andrafter que puedo usar URL para hacer alguna solicitud. Para múltiples entornos web.config y Appsettings es Avesome. Solo cambia la URL de base para cada env y eso es todo.

 

If i will do that i will save in config file only base url like this

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

and in code I can complete the link

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

andafter that I can use url to make some request. For multi-environments web.config and appsettings is avesome. You just change base url for each env and that's it.

 
 
6
 
vote

Encontré la respuesta. El problema está en el símbolo getNicknames11111. Una vez convertido a getNicknames2 , los errores que se destacó Visual Studio fue desaparecido y mi solución volvió a funcionar.

 

I found the answer. The problem is in the & symbol itself. Once converted to &, the errors Visual Studio was highlighting were gone and my solution worked again.

 
 
2
 
vote

Creo que la respuesta a sus preguntas

¿Dónde almacena la URL del cliente de REST?

¿Es correcto mover la URL de reposo al archivo de configuración?

depende de cómo implementa la solicitud de descanso a esa URL. A medida que no muestre ninguna información sobre cómo implementa la llamada de descanso, me gustaría mostrarle una manera posible y, con suerte, darle una impresión sobre qué cosas debe considerar al implementar una solución.

Entonces podemos (por el bien de la integridad) dividir una URL de punto de retención en dos partes que podrían afectar nuestra implementación.

La URL BASE:

  getNicknames3  

y los parámetros

  getNicknames4  

Teniendo esto en cuenta, podría ir al camino y dividirlos, almacenar la URL base y los parámetros en dos nodos / atributos diferentes en un archivo de configuración:

  getNicknames5  

o en un nodo / atributo, o incluso dividir cada par de parámetros individuales ("key1 = value1") en campos propios. Y así sucesivamente, y así sucesivamente ......

De todos modos, si ahora saltamos a nuestro código C # e implementamos la llamada de reposo, tenemos una amplia gama de diferentes soluciones posible. Para este ejemplo, le mostraré cómo usar el paquete RestSharp Nuget y por qué podría influir en nuestra decisión sobre la pregunta anterior.

por lo que un ejemplo básico:

  getNicknames6  

tan bueno. Pero todavía extrañamos nuestros parámetros, ¿verdad? Vamos a seguir adelante:

  getNicknames7  

que se ve muy diferente a lo que agregamos a nuestro archivo de configuración, ¿lo hace? Sí lo hace. Como RestSharp nos da una herramienta a mano que permite agregar parámetros uno por uno, somos libres de elegir cómo almacenar y mantener aquellos en nuestro código. Y si nos echamos un vistazo a la defintion addparameter

  getNicknames8  

Vemos que el segundo parámetro puede ser cualquier objeto. Increíble!

Entonces, mi respuesta a su pregunta es: Sí, puede almacenarlo en el archivo de configuración, pero ¿se ajusta a su implementación? ¿Son los parámetros correctos o cambian? ¿Cómo desea que sus herramientas favoritas le gustaría que implemente la solicitud de descanso? ​​

Basado en las respuestas a estas preguntas, tomaría una decisión más bien de usar un archivo de configuración o no.

 

I think the answer to your questions

where do you store the rest client url?

is it correct to move the rest url to the config file?

is dependent on how you implement the rest request to that url. As you do not show any information on how you implement the rest call, I would like to show you one possible way and hopefully give you an impression about which things you should consider when implementing a solution.

So we can basically (for the sake of completeness) split an rest-endpoint url into two parts which might affect our implementation.

The base url:

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

and the parameters

?key1=value1&key2=value2 

having this in mind, you could go the way and split them up, storing the base url and the parameters in two different nodes/attributes in a config file:

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

Or in one node/attribute, or even split each single parameter pair ("key1=value1") into own fields. And so on, and so on......

Anyway, if we now jump into our C# code and implement the Rest call, we have a wide range of different possible solution. For this example I will show you how to use the RestSharp NuGet package and why it might influences our decision on the above question.

So one basic example:

// 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);  

so far so good. But we still miss our parameters right? Let's go ahead:

// RestSharp gives us a very nice tool to add GET parameters to our request restRequest.AddParameter("key1", "value1"); restRequest.AddParameter("key2", "value2"); 

That looks quite different to what we added to our config file, does it? Yes it does. As RestSharp gives us a tool at hand which allows to add parameters one by one, we are free to choose how to store and maintain those in our code. And if we have a look on the AddParameter defintion

public IRestRequest AddParameter(string name, object value); 

we see that the second parameter can be any object. Amazing!

So my answer to your question is: Yes you can store it in the config file, but does it fit to your implementation? Are the parameters fix or do they change? How does your favorite tooling would like you to implement the rest request?

Based on the answers to these questions, I would take a decision rather to use a config file or not.

 
 

Relacionados problema

3  ¿Genéricos que evitan la llamada de la función virtual?  ( Generics preventing virtual function call ) 
Estoy cepillando mi C # después de muchos años. Estoy muy oxidado, así que este puede ser yo no el compilador. Las llamadas de la función virtual parecen de...

0  Desactivado "Explorador del servidor" en VS2019  ( Turning off server explorer in vs2019 ) 
MI VS2019 sigue colgando debido a las conexiones "Explorador del servidor" que no tienen nombres de usuario / contraseñas en ellos. No quiero almacenar el U /...

1  Obteniendo un error interno del servidor al ejecutar una consulta COSmos DB de C #  ( Getting internal server error when executing a cosmos db query from c sharp ) 
Obteniendo un error interno del servidor mientras ejecuta una consulta COSmos DB de código C #. string query = SELECT c.id FROM c JOIN s in c.Names WHERE S...

0  Visual Studio 2019 está configurado para: C ++ 17, pero se parece más a C ++ 14  ( Visual studio 2019 is configured forc17 but it looks more like c14 ) 
Si compile algún código con lo siguiente: #include <string_view> std::string_view strv{ "Test 1" }; Obtengo este error: Error C2065 'string_view...

0  NU1701, NU1202 Paquete Restaurar errores en Windows Fresh / VS Configuración  ( Nu1701 nu1202 package restore errors on fresh windows vs setup ) 
Trabajar en un equipo Tenemos solución en Git que está siendo desarrollada por 3 desarrolladores diferentes. Fui temporalmente a un lugar diferente con mi com...

29  La última actualización trae un error de GitHub en Pull, PUSH o SYNC  ( Latest update brings github error on pull push or sync ) 
En Visual Studio 2019, hemos estado usando la extensión GitHub con éxito desde antes de su liberación. Ahora, de repente, cuando presionamos, tiramos o sincro...

0  ¿Cómo creo una solución MVC de NENET CORE 2?  ( How do i create a net core 2 mvc solution ) 
Uso de MS Visual Studio 2019. Necesito crear una solución .NET CORE 2 MVC. Necesito apuntar a .NET CORE 2 y no 3 porque necesito usar algunas bibliotecas qu...

0  Al hacer clic en el botón de zoom o cualquier botón en la página web, no navega a la página de detalles  ( When clicking the zoom in button or any button in the webpage it doesnt naviga ) 
En Visual Studio2019, construí un proyecto llamado Odetofood usando .NET 2.1, y estoy teniendo un problema cuando hago clic en el botón ZOOM en una página we...

3  Visual Studio 2019 - Opción: Optimizar la representación de pantallas con diferentes densidades de píxeles "está en gris, pero se cumplen requritems  ( Visual studio 2019 option optimize rendering for screens with different pixel ) 
Instalé la versión final de Visual Studio 2019. Leí que es que tiene esta nueva característica para funcionar correctamente en un sistema con diferentes panta...

0  Cómo usar Azure Cloud Explorer en VS 2019  ( How to use azure cloud explorer in vs 2019 ) 
¿Cómo puedo mostrar el Explorador de la nube de Azure en VS 2019? Puedo ver que está instalado cuando miro "Obtener herramientas y funciones ..." (tengo la ...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos