<?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>Forem: David</title>
    <description>The latest articles on Forem by David (@davidzcode).</description>
    <link>https://forem.com/davidzcode</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%2F250319%2F60f2df16-b404-4636-acd4-6eea90a8b912.jpg</url>
      <title>Forem: David</title>
      <link>https://forem.com/davidzcode</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/davidzcode"/>
    <language>en</language>
    <item>
      <title>Add i18n to your Angular App</title>
      <dc:creator>David</dc:creator>
      <pubDate>Sat, 17 Feb 2024 19:48:45 +0000</pubDate>
      <link>https://forem.com/davidzcode/add-i18n-to-your-angular-app-12ng</link>
      <guid>https://forem.com/davidzcode/add-i18n-to-your-angular-app-12ng</guid>
      <description>&lt;p&gt;Hello guys, the other day in my job I had to add multilanguage support to our current Angular App that we are developing, was the first time I had to include this kind of feature to an Angular App, so I had to investigate how to do this implementation and I thought that was amazing share that I learn with you.&lt;/p&gt;

&lt;p&gt;First, we need to include the &lt;strong&gt;@angular/localize&lt;/strong&gt; to our angular application.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ng add @angular/localize
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We can configure all i18n settings in angular.json&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="nl"&gt;"projects"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"angular-localize-example"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="err"&gt;................................................&lt;/span&gt;&lt;span class="w"&gt;
      &lt;/span&gt;&lt;span class="nl"&gt;"i18n"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
           &lt;/span&gt;&lt;span class="nl"&gt;"sourceLocale"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"en-US"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
           &lt;/span&gt;&lt;span class="nl"&gt;"locales"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="nl"&gt;"es"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
                &lt;/span&gt;&lt;span class="nl"&gt;"translation"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"src/locale/messages.es.xlf"&lt;/span&gt;&lt;span class="w"&gt;
              &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
           &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
       &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;
     &lt;/span&gt;&lt;span class="err"&gt;................................................&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In the "sourceLocale" attribute, we can specify the default language that our application will use, in this case "en-US". In the "locales" attribute we will define the language that our application will support, for example Spanish "es" and the path of the translation file, usually in "src/locale" folder.&lt;/p&gt;

&lt;p&gt;The next step is adding the i18n attribute to the HTML where we want to add a translatable text.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;p&lt;/span&gt; &lt;span class="na"&gt;i18n&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Welcome to my app!&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once we have finished placing the attributes where we want. We had to extract the translations with the next command&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ng extract-i18n &lt;span class="nt"&gt;--output-path&lt;/span&gt; src/locale
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;The --output-path parameter specified where will store the generated translation file.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If we open the generated messages.xlf file, we will see something like next&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?xml version="1.0" encoding="UTF-8" ?&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;xliff&lt;/span&gt; &lt;span class="na"&gt;version=&lt;/span&gt;&lt;span class="s"&gt;"1.2"&lt;/span&gt; &lt;span class="na"&gt;xmlns=&lt;/span&gt;&lt;span class="s"&gt;"urn:oasis:names:tc:xliff:document:1.2"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;file&lt;/span&gt; &lt;span class="na"&gt;source-language=&lt;/span&gt;&lt;span class="s"&gt;"en-US"&lt;/span&gt; &lt;span class="na"&gt;datatype=&lt;/span&gt;&lt;span class="s"&gt;"plaintext"&lt;/span&gt; &lt;span class="na"&gt;original=&lt;/span&gt;&lt;span class="s"&gt;"ng2.template"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;trans-unit&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"856378210155557077"&lt;/span&gt; &lt;span class="na"&gt;datatype=&lt;/span&gt;&lt;span class="s"&gt;"html"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;source&amp;gt;&lt;/span&gt;Welcome to my app!&lt;span class="nt"&gt;&amp;lt;/source&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;context-group&lt;/span&gt; &lt;span class="na"&gt;purpose=&lt;/span&gt;&lt;span class="s"&gt;"location"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;context&lt;/span&gt; &lt;span class="na"&gt;context-type=&lt;/span&gt;&lt;span class="s"&gt;"sourcefile"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;src/app/app.component.html&lt;span class="nt"&gt;&amp;lt;/context&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;context&lt;/span&gt; &lt;span class="na"&gt;context-type=&lt;/span&gt;&lt;span class="s"&gt;"linenumber"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;1&lt;span class="nt"&gt;&amp;lt;/context&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/context-group&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/trans-unit&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/file&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/xliff&amp;gt;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now we can copy the file and renamed it like we indicated in angular.json. For the Spanish translation will be &lt;strong&gt;messages.es.xlf&lt;/strong&gt; and edit the text with the translation.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?xml version="1.0" encoding="UTF-8" ?&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;xliff&lt;/span&gt; &lt;span class="na"&gt;version=&lt;/span&gt;&lt;span class="s"&gt;"1.2"&lt;/span&gt; &lt;span class="na"&gt;xmlns=&lt;/span&gt;&lt;span class="s"&gt;"urn:oasis:names:tc:xliff:document:1.2"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;file&lt;/span&gt; &lt;span class="na"&gt;source-language=&lt;/span&gt;&lt;span class="s"&gt;"es"&lt;/span&gt; &lt;span class="na"&gt;datatype=&lt;/span&gt;&lt;span class="s"&gt;"plaintext"&lt;/span&gt; &lt;span class="na"&gt;original=&lt;/span&gt;&lt;span class="s"&gt;"ng2.template"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;trans-unit&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"856378210155557077"&lt;/span&gt; &lt;span class="na"&gt;datatype=&lt;/span&gt;&lt;span class="s"&gt;"html"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;source&amp;gt;&lt;/span&gt;¡Bienvenidos a mi APP!&lt;span class="nt"&gt;&amp;lt;/source&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;context-group&lt;/span&gt; &lt;span class="na"&gt;purpose=&lt;/span&gt;&lt;span class="s"&gt;"location"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;context&lt;/span&gt; &lt;span class="na"&gt;context-type=&lt;/span&gt;&lt;span class="s"&gt;"sourcefile"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;src/app/app.component.html&lt;span class="nt"&gt;&amp;lt;/context&amp;gt;&lt;/span&gt;
          &lt;span class="nt"&gt;&amp;lt;context&lt;/span&gt; &lt;span class="na"&gt;context-type=&lt;/span&gt;&lt;span class="s"&gt;"linenumber"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;1&lt;span class="nt"&gt;&amp;lt;/context&amp;gt;&lt;/span&gt;
        &lt;span class="nt"&gt;&amp;lt;/context-group&amp;gt;&lt;/span&gt;
      &lt;span class="nt"&gt;&amp;lt;/trans-unit&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;/file&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/xliff&amp;gt;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When we will have all ready we can build our application, but with one new parameter&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ng build &lt;span class="nt"&gt;--localize&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will generate the build app but separated in the languages that our application support.&lt;/p&gt;

&lt;p&gt;Full Code&lt;br&gt;
&lt;a href="https://github.com/davidzcode/angular-localize-example" rel="noopener noreferrer"&gt;https://github.com/davidzcode/angular-localize-example&lt;/a&gt;&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>angular</category>
    </item>
    <item>
      <title>How to: Create an API Rest with Express - Basic</title>
      <dc:creator>David</dc:creator>
      <pubDate>Sat, 17 Feb 2024 02:16:10 +0000</pubDate>
      <link>https://forem.com/davidzcode/how-to-create-an-api-rest-with-express-c2p</link>
      <guid>https://forem.com/davidzcode/how-to-create-an-api-rest-with-express-c2p</guid>
      <description>&lt;p&gt;Hi everyone, I want to bring you a quick tutorial/example of make an API Rest with Express and create a Dockerfile for building a container image.&lt;/p&gt;

&lt;p&gt;First, we need to initialize an NodeJS project&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this step, we will ask for the next parameters for creating the package.json of the project:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Package Name:&lt;/strong&gt; This is the name of your package. It should be unique within the npm ecosystem. It's used to install the package via npm and to identify it in package listings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Version:&lt;/strong&gt; This specifies the version of your package. It follows the semantic versioning format (major.minor.patch). It's used by npm to determine which versions of a package to install, among other things.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Description:&lt;/strong&gt; This is a brief description of what your package does. It helps users understand the purpose of your package when browsing package listings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Entry Point:&lt;/strong&gt; Specifies the main entry point of your package, which is the starting point for your code when it's imported or required by other modules. This entry point is typically a JavaScript file that exports the main functionality of your package. When users install your package, this is the file that will be executed or imported first.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test Command:&lt;/strong&gt; This is the command that should be run to execute your package's tests. It's typically used during development to ensure that your package behaves as expected.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Git Repository:&lt;/strong&gt; This is the URL of the Git repository where your package's source code is hosted. Including this information allows users to browse the source code and contribute to your project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Keywords:&lt;/strong&gt; These are keywords or tags that describe your package. They help users discover your package when searching npm's package registry.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Author:&lt;/strong&gt; This is the name (and optionally email) of the package's author. It's typically used to credit the creator of the package&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;License:&lt;/strong&gt; This specifies the license under which your package is distributed. It's important for users to know what rights they have when using your package.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;then we have to install the Express library for creating the ⚡magic⚡&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install &lt;/span&gt;express &lt;span class="nt"&gt;--save&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And the time arrive, time to code. &lt;strong&gt;We have to create our "main" JS file&lt;/strong&gt; like we had specified in the Entry Point parameter in the previous step, &lt;strong&gt;in my case, index.js&lt;/strong&gt; , and we will start by importing the express module to our file.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;express&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;express&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;express&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After this line, we could access to all Express functions to create and develop our API, using the const 'app'. Ant the most import part of an API it is ROUTES of course, so we will create one.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;req&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;send&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Hello World!&lt;/span&gt;&lt;span class="dl"&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;And finally we have to specify the port for the application, in this case we will use port 3000&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;listen&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Server start&lt;/span&gt;&lt;span class="dl"&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;Now we only have to execute the index.js with node command&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;node index.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And if all is alright, we will see the log in the terminal&lt;/p&gt;

&lt;p&gt;Now we can use Postman to check our new and beautiful endpoint working&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy3c50qkcczqlqkrdjsfk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy3c50qkcczqlqkrdjsfk.png" alt="Postman Example" width="460" height="481"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And this all for now, we will see more in next posts 🔮&lt;/p&gt;

&lt;p&gt;Full Code&lt;br&gt;
&lt;a href="https://github.com/davidzcode/express-basic-api" rel="noopener noreferrer"&gt;https://github.com/davidzcode/express-basic-api&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>node</category>
      <category>tutorial</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Google Cloud: Artifact Registry</title>
      <dc:creator>David</dc:creator>
      <pubDate>Mon, 06 Sep 2021 16:48:59 +0000</pubDate>
      <link>https://forem.com/davidzcode/google-cloud-artifact-registry-5ej9</link>
      <guid>https://forem.com/davidzcode/google-cloud-artifact-registry-5ej9</guid>
      <description>&lt;p&gt;Welcome to my first post, I hope this helps you for your future projects.&lt;/p&gt;

&lt;p&gt;Recently in my company we have started to migrate everything to Google Cloud Platform. In this process, we have found a new service that we did not know about it. This service is Artifact Registry.&lt;/p&gt;

&lt;p&gt;After searching for information about the service, it seems that it is an upgrade from an old service, that it's called Container Registry which is basically a Docker image repository.&lt;/p&gt;

&lt;p&gt;The new thing is that it adds support for language packaging for Java, Node.js and Python, even OS packages like Debian.&lt;/p&gt;

&lt;p&gt;That was interesting, in my company we work with Java and Spring and this can be useful for storage artifacts and have our own artifacts repository for Maven and Gradle.&lt;/p&gt;

&lt;p&gt;I suppose there will be many people who already know it, but I have wanted to do a post writing about it because if someone does not know it yet, can be useful.&lt;/p&gt;

&lt;p&gt;A greeting!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://cloud.google.com/artifact-registry" rel="noopener noreferrer"&gt;Link to Artifact Registry&lt;/a&gt;&lt;/p&gt;

</description>
      <category>googlecloud</category>
      <category>java</category>
      <category>webdev</category>
      <category>cloud</category>
    </item>
  </channel>
</rss>
