{"id":770,"date":"2018-01-08T09:00:59","date_gmt":"2018-01-08T09:00:59","guid":{"rendered":"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/?p=770"},"modified":"2018-01-08T09:00:59","modified_gmt":"2018-01-08T09:00:59","slug":"como-versionamos-nuestra-api-en-asp-net-core","status":"publish","type":"post","link":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/como-versionamos-nuestra-api-en-asp-net-core\/","title":{"rendered":"\u00bfC\u00f3mo versionamos nuestra API en ASP .NET Core?"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-796\" src=\"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2018\/01\/\u00bfComo-versionamos-nuestra-API-en-ASP-.NET-Core.png\" alt=\"\u00bfC\u00f3mo versionamos nuestra API en ASP .NET Core?\" width=\"1024\" height=\"512\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2018\/01\/\u00bfComo-versionamos-nuestra-API-en-ASP-.NET-Core.png 1024w, https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2018\/01\/\u00bfComo-versionamos-nuestra-API-en-ASP-.NET-Core-300x150.png 300w, https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2018\/01\/\u00bfComo-versionamos-nuestra-API-en-ASP-.NET-Core-768x384.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/p>\n<p>A la hora de desarrollar nuestra API, hay algunos aspectos que debemos de tener claros antes de empezar a tirar lineas de c\u00f3digo: autenticaci\u00f3n, versionado, CORS, nomenclatura, escalado, etc&#8230; En este post vamos a a ver <strong>c\u00f3mo versionar nuestra API en ASP.Net Core<\/strong>.<\/p>\n<p><!--more--><\/p>\n<p>Antes de entrar en materia, vamos a poner un poco de contexto. Tenemos la tarea de desarrollar una API para una organizaci\u00f3n que va a dar cobertura a determinados requerimientos de negocio.<\/p>\n<p>Esta API se utilizar\u00e1 desde varias aplicaciones, tanto m\u00f3viles como de escritorio, y desde entornos Windows y No-Windows). Publicamos la primera versi\u00f3n de nuestra API con todos estos requerimientos, la ponemos en producci\u00f3n, y todas estas aplicaciones se ponen a funcionar y a consumirla sin ning\u00fan problema. Ahora bien, puede llegar un momento en que surja una nueva necesidad en la organizaci\u00f3n, o bien cambie alguno de los requisitos de negocio. En este caso, est\u00e1 claro que tenemos que hacer una modificaci\u00f3n en nuestra API y quiz\u00e1s alguno de los m\u00e9todos de las aplicaciones utilizadas hayan cambiado. De ser as\u00ed, en el momento en que actualicemos las API, es posible que alguna de las aplicaciones que nos consumen dejen de funcionar. \u00bfC\u00f3mo podemos <strong>solucionar este problema<\/strong> y no dejar sin servicio a algunos de los clientes de nuestras API?:\u00a0<strong>Versionando nuestra API<\/strong><\/p>\n<h2><strong>C\u00f3mo se hac\u00eda en versiones anteriores de ASP.NET<\/strong><\/h2>\n<p>En versiones anteriores, el framework no ten\u00eda nada de serie para hacer versionados de la API, y para conseguirlo hab\u00eda que hacerlo de forma manual. Dependiendo de las necesidades que tuviera esa API, se implementaban unas rutas en cuya petici\u00f3n se\u00a0 inclu\u00eda la versi\u00f3n requerida, siguiendo el resto de procesos de forma manual. Un buen ejemplo para saber c\u00f3mo versionar de\u00a0 forma correcta en versiones anteriores, la escribi\u00f3\u00a0 <a href=\"https:\/\/twitter.com\/panicoenlaxbox\" target=\"_blank\" rel=\"noopener\">Sergio Le\u00f3n<\/a>\u00a0 en el siguiente <a href=\"http:\/\/panicoenlaxbox.blogspot.com.es\/2016\/11\/versionado-aspnet-web-api-2.html\" target=\"_blank\" rel=\"noopener\">art\u00edculo.<\/a><\/p>\n<h2><strong>\u00bfC\u00f3mo se hace en .NET Core?<\/strong><\/h2>\n<p>Ahora, el equipo de .NET ha publicado un paquete Nuget para facilitarnos todas estas tareas con el<strong> versionado de la API<\/strong>. A la consola de ejecuci\u00f3n le a\u00f1adimos el paquete de Nuget donde disponemos un middleware para utilizar en nuestro proyecto:<br \/>\nDotnet add package Microsoft.AspNetCore.Mvc.Versioning<\/p>\n<p>Con el paquete de Nuget a\u00f1adido, el siguiente paso es poner este middleware dentro del punto de arranque. Para ello, en el Startup.cs\u00a0 (m\u00e9todo ConfigureServices), a\u00f1adiremos las siguientes l\u00edneas:<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\n  services.AddApiVersioning(options =&amp;amp;gt;\r\n    {\r\n       options.ReportApiVersions=true;\r\n        options.AssumeDefaultVersionWhenUnspecified = true;\r\n      var multiVersionReader = new HeaderApiVersionReader(&quot;x-version&quot;); \r\n         options.ApiVersionReader= multiVersionReader;\r\n         options.DefaultApiVersion = new ApiVersion(1, 0);\r\n     });\r\n<\/pre>\n<p>Dentro de estas opciones:<br \/>\n&#8211; <strong>ReportApiVersion<\/strong> -&gt; Indica que en la petici\u00f3n se\u00f1alamos\u00a0 qu\u00e9 versi\u00f3n de la API soporta la petici\u00f3n que hemos realizado.<br \/>\n&#8211; <strong>AssumeDefaultVersi\u00f3nWhenUnspecified<\/strong> -&gt;En caso de que no se notifique la versi\u00f3n en la petici\u00f3n, c\u00f3mo tratamos dicha petici\u00f3n (si se env\u00eda un error o bien si asume la versi\u00f3n por defecto).<br \/>\n&#8211; <strong>ApiVersi\u00f3nReader<\/strong> -&gt; Ubicaci\u00f3n donde indicamos la versi\u00f3n, ya sea por QueryString o por HeaderAPIVersi\u00f3n<br \/>\n&#8211; <strong>DefaultApiVersi\u00f3n<\/strong> -&gt; Versi\u00f3n por defecto la API<\/p>\n<p>Ahora bien, al configurar estos par\u00e1metros tenemos que tener clara cu\u00e1l es la estrategia que vamos a dar a los consumidores de nuestra API para consultarla: si ser\u00e1 un par\u00e1metro de la petici\u00f3n REST, o\u00a0 si vamos a a\u00f1adir una \u00abheader\u00bb en dicha petici\u00f3n para seleccionar la versi\u00f3n de la API.<\/p>\n<p>Yo personalmente <strong>prefiero utilizar el header<\/strong>. El primer motivo, por seguridad (dar informaci\u00f3n extra a posibles usuarios no aporta valor). El segundo, es que si hacemos uso de una petici\u00f3n y \u00e9sta cambia, tengo que modificar las llamadas en la aplicaci\u00f3n que lo consume (como se nota el uso de la API Graph, que cada vez que cambia de versi\u00f3n tengo que llevar a cabo modificaciones en diversas aplicaciones).<\/p>\n<p>Otro de los aspectos que se configuran en el middleware es indicar si asumimos la versi\u00f3n por defecto, en caso de que no venga informada. En este caso, como<strong> creador de una API<\/strong>, me parece buena idea partir de dicha base. Ahora bien, como <strong>posible consumidor de dicha API<\/strong>, el hacer llamadas sin versionar puede ocasionar\u00a0 problemas en la llamada, ya que si la API modifica la devoluci\u00f3n de la misma, esto ocasiona que mi aplicaci\u00f3n deje de funcionar.<\/p>\n<p>Una vez tenemos el middleware configurado, el siguiente paso ser\u00eda a\u00f1adir la versi\u00f3n que vamos a utilizar dentro de cada controlador de nuestra WebAPI.<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\n                 &#x5B;ApiVersion(&quot;2.0&quot;)]\r\n    public class StarWarsController : Controller\r\n    {\r\n<\/pre>\n<p>En caso de que queramos poner la versi\u00f3n en la llamada de la petici\u00f3n, lo har\u00edamos bajo el Atributo Route, de la siguiente forma:<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\n&#x5B;ApiVersion( &quot;1.0&quot; )]\r\n&#x5B;Route( &quot;api\/v{version:apiVersion}\/&#x5B;controller]&quot; )]\r\npublic class HelloWorldController : Controller {\r\n    public string Get() =&amp;amp;gt; &quot;Hello world!&quot;;\r\n}\r\n<\/pre>\n<p>Otro de los aspectos que nos proporciona este paquete de Nuget es poder indicar que un m\u00e9todo esta<em> deprecated<\/em> y que pase a utilizar otra versi\u00f3n. Para ello, bastar\u00eda con poner lo siguiente en la cabecera de dicho m\u00e9todo:<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\n&#x5B;ApiVersion( &quot;2.0&quot; )]\r\n&#x5B;ApiVersion( &quot;1.0&quot;, Deprecated = true )]\r\n<\/pre>\n<p>A\u00f1adiendo esto en la devoluci\u00f3n de la petici\u00f3n, se devolver\u00e1 en los headers lo siguiente:<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-791\" src=\"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2018\/01\/blogheaders.jpg\" alt=\"\" width=\"812\" height=\"179\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2018\/01\/blogheaders.jpg 812w, https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2018\/01\/blogheaders-300x66.jpg 300w, https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2018\/01\/blogheaders-768x169.jpg 768w\" sizes=\"auto, (max-width: 812px) 100vw, 812px\" \/><\/p>\n<h2><strong>Conclusi\u00f3n<\/strong><\/h2>\n<p>El versionado de la API es algo muy importante y que debemos de plantearnos desde el minuto cero de la creaci\u00f3n de la API.<\/p>\n<p>Est\u00e1 claro que el utilizar esta librer\u00eda de Nuget nos ahorra muchos quebraderos de cabeza a la hora de mantener una comunicaci\u00f3n con nuestros clientes. Pero independientemente de si utilizamos la librer\u00eda o no, debemos tener clara la estrategia a seguir.<\/p>\n<p>Esta librer\u00eda nos facilita la comunicaci\u00f3n entre la API y sus consumidores, sin embargo, debemos tener en cuenta c\u00f3mo vamos a llevar el versionado del resto del backEnd. Por ejemplo, si\u00a0 a\u00f1adimos un nuevo identificador sobre la base de datos y esto provoca que la versi\u00f3n anterior deje de funcionar. En este caso, debemos tener en cuenta si \u00e9sto lo vamos a soportar o no. Otros aspectos que tambi\u00e9n hay que prever, es a cu\u00e1ntas versiones\u00a0 anteriores se da soporte y cu\u00e1l es la pol\u00edtica de incremento de versi\u00f3n de la API (si voy a subir de versi\u00f3n cuando haya un nuevo requisito, o bien cuando haya una nueva Feature).<\/p>\n<p>Y vosotros, \u00bfc\u00f3mo version\u00e1is vuestra API?<\/p>\n<p>Happy Codding \ud83d\ude42<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content --><span class=\"et_bloom_bottom_trigger\"><\/span>","protected":false},"excerpt":{"rendered":"<p>A la hora de desarrollar nuestra API, hay algunos aspectos que debemos de tener claros antes de empezar a tirar lineas de c\u00f3digo: autenticaci\u00f3n, versionado, CORS, nomenclatura, escalado, etc&#8230; En este post vamos a a ver c\u00f3mo versionar nuestra API &hellip; <a href=\"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/como-versionamos-nuestra-api-en-asp-net-core\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":8,"featured_media":796,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[70,4],"tags":[93,92,8],"class_list":["post-770","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-net","category-microsoft-azure","tag-net","tag-api","tag-azure"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v18.2.1 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>\u00bfC\u00f3mo versionamos nuestra API en ASP .NET Core? | ENCAMINA<\/title>\n<meta name=\"description\" content=\"En este post vamos a a ver c\u00f3mo versionar nuestra API en ASP.Net Core. El equipo de .NET ha publicado un paquete Nuget para facilitarnos las tareas.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/como-versionamos-nuestra-api-en-asp-net-core\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u00bfC\u00f3mo versionamos nuestra API en ASP .NET Core?\" \/>\n<meta property=\"og:description\" content=\"En este post vamos a a ver c\u00f3mo versionar nuestra API en ASP.Net Core. El equipo de .NET ha publicado un paquete Nuget para facilitarnos las tareas.\" \/>\n<meta property=\"og:url\" content=\"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/como-versionamos-nuestra-api-en-asp-net-core\/\" \/>\n<meta property=\"og:site_name\" content=\"Piensa en software, desarrolla en colores\" \/>\n<meta property=\"article:published_time\" content=\"2018-01-08T09:00:59+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2018\/01\/\u00bfComo-versionamos-nuestra-API-en-ASP-.NET-Core.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"512\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Adri\u00e1n D\u00edaz\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Adri\u00e1n D\u00edaz\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/como-versionamos-nuestra-api-en-asp-net-core\\\/#article\",\"isPartOf\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/como-versionamos-nuestra-api-en-asp-net-core\\\/\"},\"author\":{\"name\":\"Adri\u00e1n D\u00edaz\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\"},\"headline\":\"\u00bfC\u00f3mo versionamos nuestra API en ASP .NET Core?\",\"datePublished\":\"2018-01-08T09:00:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/como-versionamos-nuestra-api-en-asp-net-core\\\/\"},\"wordCount\":1136,\"commentCount\":0,\"image\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/como-versionamos-nuestra-api-en-asp-net-core\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/wp-content\\\/uploads\\\/sites\\\/21\\\/2018\\\/01\\\/\u00bfComo-versionamos-nuestra-API-en-ASP-.NET-Core.png\",\"keywords\":[\".net\",\"API\",\"Azure\"],\"articleSection\":[\".NET\",\"Microsoft Azure\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"http:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/como-versionamos-nuestra-api-en-asp-net-core\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/como-versionamos-nuestra-api-en-asp-net-core\\\/\",\"url\":\"http:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/como-versionamos-nuestra-api-en-asp-net-core\\\/\",\"name\":\"\u00bfC\u00f3mo versionamos nuestra API en ASP .NET Core? | ENCAMINA\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/como-versionamos-nuestra-api-en-asp-net-core\\\/#primaryimage\"},\"image\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/como-versionamos-nuestra-api-en-asp-net-core\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/wp-content\\\/uploads\\\/sites\\\/21\\\/2018\\\/01\\\/\u00bfComo-versionamos-nuestra-API-en-ASP-.NET-Core.png\",\"datePublished\":\"2018-01-08T09:00:59+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\"},\"description\":\"En este post vamos a a ver c\u00f3mo versionar nuestra API en ASP.Net Core. El equipo de .NET ha publicado un paquete Nuget para facilitarnos las tareas.\",\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/como-versionamos-nuestra-api-en-asp-net-core\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/como-versionamos-nuestra-api-en-asp-net-core\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/wp-content\\\/uploads\\\/sites\\\/21\\\/2018\\\/01\\\/\u00bfComo-versionamos-nuestra-API-en-ASP-.NET-Core.png\",\"contentUrl\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/wp-content\\\/uploads\\\/sites\\\/21\\\/2018\\\/01\\\/\u00bfComo-versionamos-nuestra-API-en-ASP-.NET-Core.png\",\"width\":1024,\"height\":512,\"caption\":\"\u00bfC\u00f3mo versionamos nuestra API en ASP .NET Core?\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/#website\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/\",\"name\":\"Piensa en software, desarrolla en colores\",\"description\":\"Las ventajas que te ofrece Microsoft Azure y el mundo.NET\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\",\"name\":\"Adri\u00e1n D\u00edaz\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g\",\"caption\":\"Adri\u00e1n D\u00edaz\"},\"description\":\"Adri\u00e1n D\u00edaz es Ingeniero Inform\u00e1tico por la Universidad Polit\u00e9cnica de Valencia. Es MVP de Microsoft en la categor\u00eda Office Development desde 2014, MCPD de SharePoint 2010, Microsoft Active Profesional y Microsoft Comunity Contribuitor 2012. Cofundador del grupo de usuarios de SharePoint de Levante LevaPoint. Lleva desarrollando con tecnolog\u00edas Microsoft m\u00e1s de 10 a\u00f1os y desde hace 3 a\u00f1os est\u00e1 centrado en el desarrollo sobre SharePoint. Actualmente es Software &amp; Cloud Architect Lead en ENCAMINA.\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/author\\\/desarrollandosobresharepoint\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u00bfC\u00f3mo versionamos nuestra API en ASP .NET Core? | ENCAMINA","description":"En este post vamos a a ver c\u00f3mo versionar nuestra API en ASP.Net Core. El equipo de .NET ha publicado un paquete Nuget para facilitarnos las tareas.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/como-versionamos-nuestra-api-en-asp-net-core\/","og_locale":"es_ES","og_type":"article","og_title":"\u00bfC\u00f3mo versionamos nuestra API en ASP .NET Core?","og_description":"En este post vamos a a ver c\u00f3mo versionar nuestra API en ASP.Net Core. El equipo de .NET ha publicado un paquete Nuget para facilitarnos las tareas.","og_url":"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/como-versionamos-nuestra-api-en-asp-net-core\/","og_site_name":"Piensa en software, desarrolla en colores","article_published_time":"2018-01-08T09:00:59+00:00","og_image":[{"width":1024,"height":512,"url":"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2018\/01\/\u00bfComo-versionamos-nuestra-API-en-ASP-.NET-Core.png","type":"image\/png"}],"author":"Adri\u00e1n D\u00edaz","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Adri\u00e1n D\u00edaz","Tiempo de lectura":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/como-versionamos-nuestra-api-en-asp-net-core\/#article","isPartOf":{"@id":"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/como-versionamos-nuestra-api-en-asp-net-core\/"},"author":{"name":"Adri\u00e1n D\u00edaz","@id":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb"},"headline":"\u00bfC\u00f3mo versionamos nuestra API en ASP .NET Core?","datePublished":"2018-01-08T09:00:59+00:00","mainEntityOfPage":{"@id":"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/como-versionamos-nuestra-api-en-asp-net-core\/"},"wordCount":1136,"commentCount":0,"image":{"@id":"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/como-versionamos-nuestra-api-en-asp-net-core\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2018\/01\/\u00bfComo-versionamos-nuestra-API-en-ASP-.NET-Core.png","keywords":[".net","API","Azure"],"articleSection":[".NET","Microsoft Azure"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/como-versionamos-nuestra-api-en-asp-net-core\/#respond"]}]},{"@type":"WebPage","@id":"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/como-versionamos-nuestra-api-en-asp-net-core\/","url":"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/como-versionamos-nuestra-api-en-asp-net-core\/","name":"\u00bfC\u00f3mo versionamos nuestra API en ASP .NET Core? | ENCAMINA","isPartOf":{"@id":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/#website"},"primaryImageOfPage":{"@id":"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/como-versionamos-nuestra-api-en-asp-net-core\/#primaryimage"},"image":{"@id":"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/como-versionamos-nuestra-api-en-asp-net-core\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2018\/01\/\u00bfComo-versionamos-nuestra-API-en-ASP-.NET-Core.png","datePublished":"2018-01-08T09:00:59+00:00","author":{"@id":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb"},"description":"En este post vamos a a ver c\u00f3mo versionar nuestra API en ASP.Net Core. El equipo de .NET ha publicado un paquete Nuget para facilitarnos las tareas.","inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/como-versionamos-nuestra-api-en-asp-net-core\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/como-versionamos-nuestra-api-en-asp-net-core\/#primaryimage","url":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2018\/01\/\u00bfComo-versionamos-nuestra-API-en-ASP-.NET-Core.png","contentUrl":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2018\/01\/\u00bfComo-versionamos-nuestra-API-en-ASP-.NET-Core.png","width":1024,"height":512,"caption":"\u00bfC\u00f3mo versionamos nuestra API en ASP .NET Core?"},{"@type":"WebSite","@id":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/#website","url":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/","name":"Piensa en software, desarrolla en colores","description":"Las ventajas que te ofrece Microsoft Azure y el mundo.NET","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb","name":"Adri\u00e1n D\u00edaz","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g","caption":"Adri\u00e1n D\u00edaz"},"description":"Adri\u00e1n D\u00edaz es Ingeniero Inform\u00e1tico por la Universidad Polit\u00e9cnica de Valencia. Es MVP de Microsoft en la categor\u00eda Office Development desde 2014, MCPD de SharePoint 2010, Microsoft Active Profesional y Microsoft Comunity Contribuitor 2012. Cofundador del grupo de usuarios de SharePoint de Levante LevaPoint. Lleva desarrollando con tecnolog\u00edas Microsoft m\u00e1s de 10 a\u00f1os y desde hace 3 a\u00f1os est\u00e1 centrado en el desarrollo sobre SharePoint. Actualmente es Software &amp; Cloud Architect Lead en ENCAMINA.","url":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/author\/desarrollandosobresharepoint\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-json\/wp\/v2\/posts\/770","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-json\/wp\/v2\/comments?post=770"}],"version-history":[{"count":0,"href":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-json\/wp\/v2\/posts\/770\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-json\/wp\/v2\/media\/796"}],"wp:attachment":[{"href":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-json\/wp\/v2\/media?parent=770"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-json\/wp\/v2\/categories?post=770"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-json\/wp\/v2\/tags?post=770"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}