<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: AndresGlz01</title>
    <description>The latest articles on DEV Community by AndresGlz01 (@andresglz01).</description>
    <link>https://dev.to/andresglz01</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F914945%2F1d83a5e7-9991-4a7a-a0fe-fbbd8465515d.png</url>
      <title>DEV Community: AndresGlz01</title>
      <link>https://dev.to/andresglz01</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/andresglz01"/>
    <language>en</language>
    <item>
      <title>Crea una API fácil con ASP.NET CORE 🔥</title>
      <dc:creator>AndresGlz01</dc:creator>
      <pubDate>Sat, 27 Aug 2022 01:31:00 +0000</pubDate>
      <link>https://dev.to/andresglz01/crea-una-api-facil-con-aspnet-core-3djb</link>
      <guid>https://dev.to/andresglz01/crea-una-api-facil-con-aspnet-core-3djb</guid>
      <description>&lt;p&gt;¡Hola, gente! este es mi primer blog en la plataforma, espero les sea de utilidad este artículo ⭐&lt;/p&gt;

&lt;p&gt;Vamos a suponer que estamos en la necesidad de crear una API y tiene que ser en ASP.NET Core ¿Qué debemos hacer? 🤔&lt;/p&gt;

&lt;p&gt;Primero, para trabajar con plataforma de .NET necesitas tener instalado alguno de sus SDK y su respectivo runtime, te recomiendo que sean los más recientes, &lt;a href="https://dotnet.microsoft.com/en-us/download/dotnet"&gt;haz click aquí para ver los SDK&lt;/a&gt; 👈&lt;/p&gt;

&lt;p&gt;Este SDK viene con un CLI (Command Line Interface) la cual nos permite crear y ejecutar nuestro proyecto ¡Entré otras muchas coas!&lt;/p&gt;

&lt;p&gt;Bien, ahora podemos crear un proyecto desde nuestra terminal con el siguiente comando&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dotnet new webapi -n "YourProjectName"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Este comando es especifico para crear una API, pero puedes ver todas las opciones de proyectos distintos disponibles con el comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dotnet new --list
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Después de dar ese dato, vamos a ver que el comando que previamente ejecutamos nos creo un directorio con el nombre especificado:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QLHyzBd1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g2mdj9br0w1hf5kgdbok.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QLHyzBd1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/g2mdj9br0w1hf5kgdbok.png" alt="Carpeta" width="312" height="321"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ahora puedes elegir el editor de código de tu preferencia 😊&lt;br&gt;
Por defecto utilizaré Visual Studio Code, abre el editor y navega hacía la carpeta recién creada:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EzEVLHeh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/upjapy5hsrcwcelp64b2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EzEVLHeh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/upjapy5hsrcwcelp64b2.png" alt="Editor de código" width="880" height="677"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Como podemos observar nos creó un conjunto de archivos directamente listos para ser ejecutados 🔥&lt;/p&gt;

&lt;p&gt;Para probar que todo va bien, (dentro del directorio del proyecto) ejecuta en la terminal el siguiente comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dotnet watch run
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ahora ya que tienemos un proyecto listo para t&lt;br&gt;
Si todo salió bien, nos debería mostrar en el navegador la siguiente interfaz:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--n32loRx0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/otxpedjvqizqaghfbpae.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--n32loRx0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/otxpedjvqizqaghfbpae.png" alt="Swagger" width="880" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Este es Swagger, y es solo una interfaz gráfica que nos ayudará a probar nuestra API, viene por defecto al crear un proyecto webapi. 👌&lt;/p&gt;

&lt;p&gt;Puedes observar que ya tiene un endpoint, pues la plantilla viene con uno por defecto, y desde Swagger puedes probar su funcionamiento, despliega el panel, haz click en Try y ejecuta. ❤️&lt;/p&gt;

&lt;p&gt;⭐ Ahora ya que tenemos todo listo para trabajar, te mostraré a crear tu controlador, para consecuente, ¡Crear tus endpoints! ⭐&lt;/p&gt;

&lt;p&gt;Debes crear un archivo .cs en la carpeta Controllers, este será un controlador y debe seguir la siguiente nomenclatura por convención: NameController.&lt;br&gt;
Por ejemplo, si quiero un controlador para mis empleados, crearé el controlador EmpleadoController 👻&lt;/p&gt;

&lt;p&gt;Dentro del archivo crea una clase con el mismo nombre y extienda a la clase ControllerBase, como el siguiente ejemplo (No olvides agregar el espacio de nombres de ControllerBase):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="k"&gt;using&lt;/span&gt; &lt;span class="nn"&gt;Microsoft.AspNetCore.Mvc&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;namespace&lt;/span&gt; &lt;span class="nn"&gt;YourProjectName.Controllers&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;EmpleadoController&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;ControllerBase&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;

    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A esta clase debemos relacionarla con un par de atributos:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;ApiController&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nf"&gt;Route&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"[controller]"&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;
&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;WeatherForecastController&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;ControllerBase&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;En el segundo atributo, Route, especificamos la manera de acceder a los endpoints, que de normal es el nombre de controlador, accederemos a un endpoint de estas posibles maneras:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Empleado/get
Empleado/post
Empleado/put
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ahora, al asunto importante, los endpoints serán los métodos de esta clase 😲&lt;/p&gt;

&lt;p&gt;probaremos el siguiente método:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nf"&gt;HttpGet&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"{i}"&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;
&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;Get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
   &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="p"&gt;+&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ahora podemos ejecutar de nuevo la aplicación y veremos que el método aparece en Swagger, de esta forma lo puedes probar desde esa interfaz.&lt;/p&gt;

&lt;p&gt;Como puedes ver en el código, es un simple método que recibe un número y retorna el número +1. 🤣&lt;/p&gt;

&lt;p&gt;Pero lo importante es que lo enlazamos a un atributo.&lt;br&gt;
Este atributo define el método http para acceder a nuestro método. &lt;/p&gt;

&lt;p&gt;Consulta los diferentes métodos http para que te des una idea 🔥&lt;/p&gt;

&lt;p&gt;También observa que le pasamos como argumento un string con un &lt;br&gt;
valor entre corchetes, este valor es el que recibiremos mediante Query String. Dentro de ese mismo string puedes especificar como acceder al método. Observa 👀&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nf"&gt;HttpGet&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"sumar/{i}"&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;
&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="nf"&gt;Get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="p"&gt;+&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IMsdzLiB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l4s4q8ygf15dj59mqu8y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IMsdzLiB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l4s4q8ygf15dj59mqu8y.png" alt="Swagger" width="880" height="611"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ahora ya sabes lo super básico para empezar a crear una API. Próximamente exploraré más tema para complementar cosas más complejas como bases de datos, documentación, etc.&lt;/p&gt;

&lt;p&gt;Ten un excelente día. 🔥👌 &lt;/p&gt;

</description>
      <category>asp</category>
      <category>tutorial</category>
      <category>api</category>
    </item>
  </channel>
</rss>
