Sick Gaming
Fedora - Using Fedora to quickly implement REST API with JavaScript - Printable Version

+- Sick Gaming (https://www.sickgaming.net)
+-- Forum: Computers (https://www.sickgaming.net/forum-86.html)
+--- Forum: Linux, FreeBSD, and Unix types (https://www.sickgaming.net/forum-88.html)
+--- Thread: Fedora - Using Fedora to quickly implement REST API with JavaScript (/thread-94478.html)



Fedora - Using Fedora to quickly implement REST API with JavaScript - xSicKxBot - 04-10-2020

Using Fedora to quickly implement REST API with JavaScript

<div style="margin: 5px 5% 10px 5%;"><img src="https://www.sickgaming.net/blog/wp-content/uploads/2020/04/using-fedora-to-quickly-implement-rest-api-with-javascript.png" width="800" height="600" title="" alt="" /></div><div><p>Fedora Workstation uses GNOME Shell by default and this one was mainly written in JavaScript. JavaScript is famous as a language of front-end development but this time we’ll show its usage for back-end.</p>
<p>We’ll implement a new API using the following technologies: JavaScript, Express and Fedora Workstation. A web browser is being used to call the service (eg. Firefox from the default Fedora WS distro).</p>
<p> <span id="more-30805"></span> </p>
<h2>Installing of necessary packages</h2>
<p><strong>Check: What’s already installed?</strong></p>
<pre class="wp-block-preformatted">$ npm -v
$ node -v</pre>
<p>You may already have both the necessary packages installed and can skip the next step. If not, install <em>nodejs</em>:</p>
<pre class="wp-block-preformatted">$ sudo dnf install nodejs</pre>
<h2>A new simple service (low-code style)</h2>
<p>Let‘s navigate to our working directory (<em>work</em>) and create a new directory for our new sample back-end app.</p>
<pre class="wp-block-preformatted">$ cd work
$ mkdir newApp
$ cd newApp
$ npx express-generator</pre>
<p>The above command generates an application skeleton for us.</p>
<pre class="wp-block-preformatted">$ npm i</pre>
<p>The above command installs dependencies. Please mind the security warnings – never use this one for production.</p>
<p>Crack open the <strong>routes/users.js</strong></p>
<p>Modify line #6 to: </p>
<pre class="wp-block-preformatted">res.send(data);</pre>
<p>Insert this code block below <em>var router</em>:</p>
<pre class="wp-block-preformatted">let data = { '1':'Ann', '2': 'Bruno', '3': 'Celine' }</pre>
<p>Save<br />
the modified file.</p>
<p>We modified a route and added a new variable data. This one could be declared as a <em>const</em> as we didn‘t modify it anywhere. The result:</p>
<figure class="wp-block-image size-large is-resized"><img src="https://www.sickgaming.net/blog/wp-content/uploads/2020/04/using-fedora-to-quickly-implement-rest-api-with-javascript.png" alt="" class="wp-image-30806" width="580" height="435" /></figure>
<h2>Running the service on your local Fedora workstation machine</h2>
<pre class="wp-block-preformatted">$ npm start</pre>
<p><em>Note: The application entry point is bin/www. You may want to change the port number there.</em></p>
<h2>Calling our new service</h2>
<p>Let‘s launch our Firefox browser and type-in:</p>
<p><em>http://localhost:3000/users</em></p>
<figure class="wp-block-image size-large"><img src="https://www.sickgaming.net/blog/wp-content/uploads/2020/04/using-fedora-to-quickly-implement-rest-api-with-javascript-1.png" alt="" class="wp-image-30808" /><figcaption>Output</figcaption></figure>
<p>It‘s also possible to leverage the Developer tools. Hit <strong>F12</strong> and in the <em>Network</em> tab, select the related GET request and look at the side bar response tab to check the data.</p>
<h2>Conclusion</h2>
<p>Now we have got a service and and an unnecessary index accessible through <em>localhost:3000</em>. To get quickly rid of this:</p>
<ol>
<li>Remove the <em>views</em> directory</li>
<li>Remove the <em>public</em> directory</li>
<li>Remove the <em>routes/index.js</em> file</li>
<li>Inside the <em>app.js</em> file, modify the line 37 to:<br />
<div class="codecolorer-container text default" style="overflow:auto;border:1px solid #9F9F9F;width:435px">
<div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace">res.status(err.status || 500).end();</div>
</div>
</li>
<li>Remove the next line <em>res.render(‘error’)</em></li>
</ol>
<p>Then restart the service:</p>
<pre class="wp-block-preformatted">$ npm start</pre></p>
</div>


https://www.sickgaming.net/blog/2020/04/10/using-fedora-to-quickly-implement-rest-api-with-javascript/