<?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: Mayank Yadav</title>
    <description>The latest articles on Forem by Mayank Yadav (@maydev).</description>
    <link>https://forem.com/maydev</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%2F123732%2Ff3872c08-a70f-49ec-ab44-f1e4d1246dbc.jpeg</url>
      <title>Forem: Mayank Yadav</title>
      <link>https://forem.com/maydev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/maydev"/>
    <language>en</language>
    <item>
      <title>A Tale of Two Frontend Frameworks</title>
      <dc:creator>Mayank Yadav</dc:creator>
      <pubDate>Thu, 20 Jul 2023 16:36:22 +0000</pubDate>
      <link>https://forem.com/maydev/a-tale-of-two-frontend-frameworks-7aa</link>
      <guid>https://forem.com/maydev/a-tale-of-two-frontend-frameworks-7aa</guid>
      <description>&lt;p&gt;In the vast realm of web development, selecting the right frontend framework is akin to choosing a path in a dense forest, with each turn leading to new challenges and revelations. My journey commenced in 2019 when I decided to embark on the path of React, mesmerized by its soaring popularity and vibrant community. Brimming with enthusiasm, I completed an extensive React course, diligently coding alongside the instructor, and mastering its concepts. Yet, as I approached the end of the course and ventured into building my own projects, I felt lost in a labyrinth of possibilities.&lt;/p&gt;

&lt;p&gt;Undaunted by the roadblocks, I resolved to deepen my understanding by revisiting the course. Armed with prior knowledge, I grasped the concepts with ease, yet the chasm between theory and practical implementation persisted. Though I managed to crack interviews due to my solid grasp of React's core concepts, I couldn't help but wonder why I struggled to create real-world projects.&lt;/p&gt;

&lt;p&gt;Fast forward to 2020, my career took a new trajectory as I transitioned to a role that introduced me to Angular. To my surprise, the experience was markedly different. Within a mere fifteen days, my Angular code was in production, a feat that had eluded me with React. This newfound fluency with Angular led me to ponder over several theories that may have contributed to my affinity for the framework.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Prior Backend Experience:&lt;/strong&gt; Having a background in backend development using Java, I found Angular's concepts, such as classes, interfaces, strong typing, and dependency injection, strikingly familiar. Angular's adherence to object-oriented principles resonated with my backend development practices. Furthermore, the concept of services for business logic aligned harmoniously with my previous experience.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Too Many Choices in React:&lt;/strong&gt; React's ecosystem is brimming with myriad options and libraries, providing developers with unparalleled flexibility. However, this abundance of choices often leads to indecision and confusion. While one method might seem appropriate for a particular task, an entirely different approach might be suggested elsewhere, leaving developers perplexed and doubting their choices. This phenomenon, known as the &lt;a href="https://www.nytimes.com/2010/02/27/your-money/27shortcuts.html"&gt;"too many choices"&lt;/a&gt; problem, can hinder productivity and slow down the learning process.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Learning at Work:&lt;/strong&gt; The idiom "learning by doing" holds true in the realm of software development. My hands-on experience with Angular at work provided invaluable insights into the framework's inner workings. By studying code written by seasoned professionals, I gained practical knowledge that I could apply to new projects. Comparatively, self-paced online learning, while valuable, often lacks the real-world context that on-the-job experience can provide.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Lack of Segregation in React:&lt;/strong&gt; In React, it is not uncommon to find components containing HTML (JSX), JavaScript, and CSS within the same file. This lack of clear segregation may lead to cluttered codebases, making it challenging to maintain and troubleshoot. While it is possible to separate concerns into separate files, React does not enforce a standard practice, leaving it up to developers to decide on an organization strategy. Ironically, this lack of clarity brings to mind the very reason JavaServer Pages (JSP) faced criticism and was eventually phased out.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Complex State Management in React:&lt;/strong&gt; State management is a crucial aspect of building scalable and maintainable applications. In React, various approaches exist, such as React Context and Redux, each with its complexities involving reducers, actions, and effects. This complexity can be overwhelming, especially for developers new to frontend development. In contrast, Angular offers a more straightforward state management mechanism. For simpler applications, one can store state in services, while for more complex scenarios, Angular provides NgRx, which embraces the Flux pattern.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Modularity in Angular:&lt;/strong&gt; One of the standout features of Angular is its emphasis on modularity through the concept of modules. By dividing the application into cohesive, self-contained modules, developers can control loading strategies, share states, and manage services more efficiently. This design fosters collaboration within teams, with each team focusing on distinct parts of the application while maintaining overall coherence. The modularity aspect of Angular is further echoed in the concept of Angular libraries, allowing the reuse of components and services across multiple projects.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Why Use a Framework:&lt;/strong&gt; The allure of frontend frameworks lies in their ability to abstract complexities, providing developers with a smooth development experience. However, React's need for vigilance in avoiding direct state updates and nested function calls can sometimes challenge the very essence of a framework's purpose. Ideally, a framework should interpret changes and update the application efficiently, promoting immutability and unburdening developers from micro-managing state updates.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;After all these experiences, I now find myself in the year 2023, at a point in my career where I have the opportunity to explore React once again. The buzz surrounding React has not diminished over the years, which piqued my curiosity to reevaluate the framework with a fresh perspective. As a developer who has gained proficiency in a component-based SPA framework like Angular, I now find myself better equipped to comprehend React's intricacies.&lt;/p&gt;

&lt;p&gt;Surprisingly, this time around, I am finding React easier to understand. My prior experience with Angular has provided me with a valuable foundation to grasp React's concepts more effectively. The years of working with a component-based architecture have honed my skills in structuring applications and managing state, which in turn allows me to navigate React's ecosystem more confidently.&lt;/p&gt;

&lt;p&gt;Yet, even with this newfound appreciation for React, I still wonder why it continues to reign supreme in popularity compared to Angular. Both frameworks boast a rich set of features, catering to different development needs and styles. It could be that React's flexibility and wide array of community-contributed libraries continue to attract developers of all backgrounds and preferences.&lt;/p&gt;

&lt;p&gt;In conclusion, my journey with React and Angular has been a profound learning experience, shaping my understanding of frontend development. Each framework possesses its unique strengths and weaknesses, and the decision to choose one over the other must be based on the specific requirements of the project and the preferences of the development team.&lt;/p&gt;

&lt;p&gt;As I embark on new adventures in the ever-evolving web development landscape, I remain open-minded, ready to embrace the next challenge that comes my way. Whether it's React, Angular, or any other emerging framework, my journey as a full-stack developer continues with excitement and anticipation for what lies ahead.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--HzeEadg6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5q5k2tutkpn7iit5hcbr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--HzeEadg6--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5q5k2tutkpn7iit5hcbr.png" alt="React x Angular" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>reactvsangular</category>
      <category>frontendframeworks</category>
      <category>reactdevelopment</category>
      <category>angularcommunity</category>
    </item>
    <item>
      <title>Markdown: The second step to writing your Blog/Documentation</title>
      <dc:creator>Mayank Yadav</dc:creator>
      <pubDate>Mon, 27 Jan 2020 07:33:05 +0000</pubDate>
      <link>https://forem.com/maydev/markdown-the-second-step-to-writing-your-blog-documentation-ccg</link>
      <guid>https://forem.com/maydev/markdown-the-second-step-to-writing-your-blog-documentation-ccg</guid>
      <description>&lt;p&gt;The first step is sitting down and writing it. I'm serious Karen. Stop watching that TV show and start writing. 😜  &lt;/p&gt;

&lt;p&gt;As per &lt;a href="https://en.wikipedia.org/wiki/Markdown"&gt;Wikipedia&lt;/a&gt;,&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Markdown&lt;/strong&gt; is a lightweight markup language with plain text formatting syntax. Its design allows it to be converted to many output formats, but the original tool by the same name only supports HTML. Markdown is often used to format readme files, for writing messages in online discussion forums, and to create rich text using a plain text editor.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It is much easier as compared to HTML as the latter is quite verbose and not easy to read with all the tags. Let's take a look at how it's done.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;NOTE: Markdown may have different flavors, i.e., it may be parsed differently on different platforms.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Paragraph and line breaks
&lt;/h2&gt;

&lt;p&gt;Markdown does not trouble you too much with paragraphs and line breaks. Just press and enter (or return) and start writing. Just like writing an email.&lt;/p&gt;

&lt;h2&gt;
  
  
  Headers
&lt;/h2&gt;

&lt;p&gt;We get 6 different sizes for headers Just like HTML. The number of &lt;code&gt;#&lt;/code&gt;'s you precede the text with is the header size.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# This would be an h1 header
### This would be an h3 header
###### This would be an h6 header
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Result:
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;h1&gt;
  
  
  h1 header text
&lt;/h1&gt;
&lt;h3&gt;
  
  
  h3 header text
&lt;/h3&gt;
&lt;h6&gt;
  
  
  h6 header text
&lt;/h6&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Emphasize Text
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Bold:&lt;/strong&gt; Surround the text to be bolded by two asterisks(&lt;code&gt;**&lt;/code&gt;) or two underscores(&lt;code&gt;__&lt;/code&gt;).&lt;br&gt;
&lt;em&gt;Italics:&lt;/em&gt; Surround by a single asterisk(&lt;code&gt;*&lt;/code&gt;) or underscore(&lt;code&gt;_&lt;/code&gt;)&lt;br&gt;
&lt;del&gt;Strikethrough:&lt;/del&gt; Surround the text with two tildes (&lt;code&gt;~~&lt;/code&gt;)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;**This is some bold text**
__This is also bold text__
*This text is in italics*
_And so is this one_
_This_text_won't_be_emphasized
*Here's the best __of both the worlds__*
~~Hello! I'm Darth Maul~~
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Result:
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;This is some bold text&lt;/strong&gt;*&lt;br&gt;
&lt;strong&gt;This is also bold text&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;This text is in italics&lt;/em&gt;&lt;br&gt;
&lt;em&gt;And so is this one&lt;/em&gt;&lt;br&gt;
&lt;em&gt;This_text_won't_be_emphasized&lt;br&gt;
*Here's the best __of both the worlds&lt;/em&gt;_*&lt;br&gt;
&lt;del&gt;Hello! I'm Darth Maul&lt;/del&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; Markdown does not allow underlines between the texts. Probably because it affects the readability. Another reason is maybe that underlined texts could be misunderstood for links.&lt;br&gt;
However, we can use line breaks and have underlines for headings. Let's see.&lt;/p&gt;
&lt;h2&gt;
  
  
  Horizontal Lines
&lt;/h2&gt;

&lt;p&gt;At the start of the line, we can put &lt;code&gt;___&lt;/code&gt; or &lt;code&gt;***&lt;/code&gt; and the press enter&lt;code&gt;↵&lt;/code&gt; (or return) to get a horizontal line break.&lt;br&gt;
We can make an underlined heading by using &lt;code&gt;=&lt;/code&gt; (for H1 heading) or &lt;code&gt;-&lt;/code&gt; (for H2 heading) below the heading text.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;___
I'm a sandwich
***
This is h1 heading
===
This is h2 heading
---
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Result:
&lt;/h3&gt;

&lt;blockquote&gt;


&lt;p&gt;I'm a sandwich&lt;/p&gt;


&lt;h1&gt;
  
  
  This is H1 underlined heading
&lt;/h1&gt;
&lt;h2&gt;
  
  
  This is H2 underlined heading
&lt;/h2&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Block Quotes
&lt;/h2&gt;

&lt;p&gt;We can add block quotes by starting our line with &lt;code&gt;&amp;gt;&lt;/code&gt;. We can also chain block quotes by increasing the number of &lt;code&gt;&amp;gt;&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;gt; This is the end, beautiful friend  
&amp;gt; This is the end, my only friend  
&amp;gt; &amp;gt; The end of our elaborate plans  
&amp;gt; &amp;gt; &amp;gt; The end of everything that stands  
&amp;gt; The end
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Result:
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;This is the end, beautiful friend&lt;br&gt;&lt;br&gt;
This is the end, my only friend  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The end of our elaborate plans  &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The end of everything that stands&lt;br&gt;&lt;br&gt;
The end&lt;/p&gt;
&lt;/blockquote&gt;


&lt;/blockquote&gt;
&lt;br&gt;
&lt;/blockquote&gt;

&lt;p&gt;We can end the blockquote with an additional enter&lt;code&gt;↵&lt;/code&gt; (or return). &lt;/p&gt;

&lt;h2&gt;
  
  
  Lists
&lt;/h2&gt;

&lt;p&gt;Ordered lists are very simple. Just do the numbering as you'd do on a notepad.&lt;br&gt;
We can create unordered lists using the plus (&lt;code&gt;+&lt;/code&gt;), minus (&lt;code&gt;-&lt;/code&gt;) or the asterisk (&lt;code&gt;*&lt;/code&gt;)&lt;br&gt;
Use the Tab key to indent and do list nesting.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;1. Go downstairs
2. Ignite the engine
3. Roam aimlessly
* Try Gatsby
- Write an article on Hooks
    + Learn GraphQL
        + Dive deep into MongoDB
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Result:
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;ol&gt;
&lt;li&gt;Go downstairs&lt;/li&gt;
&lt;li&gt;Ignite the engine&lt;/li&gt;
&lt;li&gt;Roam aimlessly&lt;/li&gt;
&lt;li&gt;Try Gatsby&lt;/li&gt;
&lt;li&gt;Write an article on Hooks

&lt;ul&gt;
&lt;li&gt;Learn GraphQL

&lt;ul&gt;
&lt;li&gt;Dive deep into MongoDB&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Task Lists
&lt;/h2&gt;

&lt;p&gt;Task Lists are basically lists with a checkbox. They can be implemented using square brackets.&lt;br&gt;
(&lt;code&gt;[ ]&lt;/code&gt;) for incomplete&lt;br&gt;
(&lt;code&gt;[x]&lt;/code&gt;) for complete&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[x] Create a plan for the week
[ ] Exercise
[ ] Get groceries
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Result:
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;ul&gt;
&lt;li&gt;[x] Create a plan for the week&lt;/li&gt;
&lt;li&gt;[ ] Exercise&lt;/li&gt;
&lt;li&gt;[ ] Get groceries&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Code Blocks
&lt;/h2&gt;

&lt;p&gt;Code blocks can be created by enclosing the paragraph/code with three backticks.&lt;br&gt;
We can also highlight the code as per the language by writing the language name after the first set of three backticks&lt;br&gt;
To use inline code, enclose the code with a single backtick.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ddter-Nq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/5u45kravzwj3a50g0x6a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ddter-Nq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/5u45kravzwj3a50g0x6a.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  Result:
&lt;/h3&gt;

&lt;blockquote&gt;

&lt;pre class="highlight plaintext"&gt;&lt;code&gt;if (!hungry) {
 code();
} else {
 orderFood();
}
&lt;/code&gt;&lt;/pre&gt;



&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;typeof&lt;/span&gt; &lt;span class="kc"&gt;NaN&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;number&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="c1"&gt;// true&lt;/span&gt;
&lt;span class="kc"&gt;Infinity&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;        &lt;span class="c1"&gt;// true&lt;/span&gt;
&lt;span class="mf"&gt;0.1&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mf"&gt;0.2&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="mf"&gt;0.3&lt;/span&gt;       &lt;span class="c1"&gt;// false&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;


&lt;p&gt;We must use &lt;code&gt;for...in&lt;/code&gt; to iterate objects and &lt;code&gt;for...of&lt;/code&gt; for arrays.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  Tables
&lt;/h2&gt;

&lt;p&gt;Tables in Markdown are created using pipes(&lt;code&gt;|&lt;/code&gt;).&lt;br&gt;
Create the first row of headers enclosed and separated by pipes.&lt;br&gt;
Fill the second row with hyphens(&lt;code&gt;-&lt;/code&gt;).&lt;br&gt;
Use colons(&lt;code&gt;:&lt;/code&gt;) with hyphens to set alignment for the cells in the column.&lt;br&gt;
Colons on left of hyphens for left-aligned, on the right for right-aligned and on both the end for center-aligned.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;|Toy Story Movies|Year of release|Rating (Rotten Tomato)|
|:---------------|:-------------:|-----------:|
|Toy Story|1995|100%|
|Toy Story 2|1999|100%|
|Toy Story 3|2010|98%|
|Toy Story 4|2019|97%|
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;blockquote&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Toy Story Movies&lt;/th&gt;
&lt;th&gt;Year of release&lt;/th&gt;
&lt;th&gt;Rating (Rotten Tomatoes)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Toy Story&lt;/td&gt;
&lt;td&gt;1995&lt;/td&gt;
&lt;td&gt;100%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Toy Story 2&lt;/td&gt;
&lt;td&gt;1999&lt;/td&gt;
&lt;td&gt;100%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Toy Story 3&lt;/td&gt;
&lt;td&gt;2010&lt;/td&gt;
&lt;td&gt;98%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Toy Story 4&lt;/td&gt;
&lt;td&gt;2019&lt;/td&gt;
&lt;td&gt;97%&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;/blockquote&gt;

&lt;p&gt;We can also use inline markdown properties in the table cells.&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;p&gt;Links can be created using the below format.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt; [&amp;lt;1. Link Text&amp;gt;](&amp;lt;2. The actual link&amp;gt; &amp;lt;3. Title for the link&amp;gt;).
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;We can also create internal links, to link within a page.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;No one really follows me on [Twitter](https://twitter.com/_mayank_09 "Please follow me. Please follow me. Please follow me.").
You know what happened to [Darth Maul](#Emphasize Text "He got sliced.")
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Result:
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;No one really follows me on &lt;a href="https://twitter.com/_mayank_09"&gt;Twitter&lt;/a&gt;.&lt;br&gt;
You know what happened to Darth Maul&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Images
&lt;/h2&gt;

&lt;p&gt;Inserting an image is very similar to inserting a link.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;![&amp;lt;1. Alt Text&amp;gt;](&amp;lt;2. Path to image&amp;gt; &amp;lt;3. Optional Title&amp;gt;)
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;





&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;!["Hello World"](https://thepracticaldev.s3.amazonaws.com/i/yo9k0p5d6rk0fdj5q6xi.gif "When you successfully print Hello World")
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--i_amgGJ8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/yo9k0p5d6rk0fdj5q6xi.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--i_amgGJ8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://thepracticaldev.s3.amazonaws.com/i/yo9k0p5d6rk0fdj5q6xi.gif" alt='When you successfully print "Hello World"' title="When you successfully print Hello World"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Emoji 😄
&lt;/h2&gt;

&lt;p&gt;Emojis are simple to implement, but it's hard to really remember them.&lt;br&gt;
I usually refer to &lt;a href="https://gist.github.com/rxaviers/7360908"&gt;this link&lt;/a&gt; whenever I need to. It has almost all the codes for emojis you can possibly use.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Can you guess the movie: :boy: :older_man: :car: :watch:
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Result
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;Can you guess the movie: 👦 👴 🚗 ⌚&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Highlight
&lt;/h2&gt;

&lt;p&gt;To highlight a text, enclose it with two equal to signs (&lt;code&gt;==&lt;/code&gt;)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Look if you had one shot or one opportunity  
==To seize everything you ever wanted in one moment== 
Would you capture it? Or just let it slip?
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;The bad news is Dev.to does not support &lt;code&gt;==&lt;/code&gt; for highlighting.&lt;br&gt;
The good news is, &lt;strong&gt;we can use plain HTML in Markdown too&lt;/strong&gt;. HTML &lt;code&gt;&amp;lt;mark&amp;gt;&lt;/code&gt; tag does the job of highlighting really well.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Look if you had one shot or one opportunity  
&amp;lt;mark&amp;gt;To seize everything you ever wanted in one moment&amp;lt;/mark&amp;gt;
Would you capture it? Or just let it slip?
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Result:
&lt;/h3&gt;

&lt;blockquote&gt;
&lt;p&gt;Look if you had one shot or one opportunity&lt;br&gt;
To seize everything you ever wanted in one moment&lt;br&gt;
Would you capture it? Or just let it slip?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;There is a lot more in Markdown but this shall be enough to get you through.&lt;/p&gt;

&lt;p&gt;If you think Markdown is not worth your time or if you keep forgetting the syntaxes, you should try &lt;a href="https://www.typora.io/"&gt;Typora&lt;/a&gt;. It lets you create Markdown with a really interactive GUI.&lt;/p&gt;

&lt;p&gt;Also, you can edit markdown online and watch the effects side by side using &lt;a href="https://www.stackedit.io"&gt;StackEdit&lt;/a&gt; or &lt;a href="https://www.dillinger.io"&gt;Dillinger&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can always refer to this article or some other links below:&lt;br&gt;
&lt;a href="https://www.markdownguide.org/basic-syntax/"&gt;Markdown Guide&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.markdownguide.org/extended-syntax/"&gt;Markdown Guide Extended Syntax&lt;/a&gt;&lt;br&gt;
&lt;a href="https://guides.github.com/features/mastering-markdown/"&gt;Github Guides: Mastering Markdown&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you are going to write an article on dev.to, do check out &lt;a href="https://dev.to/p/editor_guide"&gt;Dev.to Editor Guide&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks for reading. 💙&lt;/p&gt;

</description>
      <category>writing</category>
      <category>software</category>
      <category>development</category>
      <category>productivity</category>
    </item>
    <item>
      <title>My Postman</title>
      <dc:creator>Mayank Yadav</dc:creator>
      <pubDate>Sat, 28 Dec 2019 17:05:06 +0000</pubDate>
      <link>https://forem.com/maydev/my-postman-23hi</link>
      <guid>https://forem.com/maydev/my-postman-23hi</guid>
      <description>&lt;p&gt;Almost everyone who works into web development, front-end or back-end, has in some part of their development career used "Postman" or some other API client to test the app we are building. But, do we all know that Postman provides so much more than what we usually use it for.  &lt;/p&gt;

&lt;p&gt;Let's see how we can be more productive and use Postman to its full potential.&lt;br&gt;&lt;br&gt;
*Since this is not an introduction, I am assuming that everyone here is familiar with basic Postman features such as sending requests, saving requests, creating collections, blah blah blah. *  &lt;/p&gt;

&lt;p&gt;Time to deliver some letters. 😛  &lt;/p&gt;
&lt;h2&gt;
  
  
  Environments and Variables:
&lt;/h2&gt;

&lt;p&gt;Setting up environments can boost up your productivity if your application is deployed in different systems. With environments, we can switch between different versions in no time.&lt;br&gt;&lt;br&gt;
It's also better to create different environments for the different applications we are working on so that we don't mix up the variables from one application into another.  &lt;/p&gt;

&lt;p&gt;Variables provide a dynamic nature to the values we use in our application. We can set variables in different scopes, thus we not have to carry the values from the requests manually from place to place.  &lt;/p&gt;

&lt;p&gt;Postman supports the following variable scopes:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Global
&lt;/li&gt;
&lt;li&gt;Collection
&lt;/li&gt;
&lt;li&gt;Environment
&lt;/li&gt;
&lt;li&gt;Data
&lt;/li&gt;
&lt;li&gt;Local
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The heirarchy of variavbles scopes is like: Data &amp;lt; Local &amp;lt; Environment &amp;lt; Collection &amp;lt; Global&lt;br&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fun118ase2zj7jj0qy8m1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fun118ase2zj7jj0qy8m1.png" alt="Alt Text"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;We can set the environments by clicking on the "gear" (⚙️) icon in the top right corner.&lt;br&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fyom4ahs52uxzpo1tab0h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fyom4ahs52uxzpo1tab0h.png" alt="Click on the gear button"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;We can set the environment variables while adding the environments.&lt;br&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fsloovohe55fa0qh80r2u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fsloovohe55fa0qh80r2u.png" alt="Enter the values and click "&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;We can easily switch between the environments created.&lt;br&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fdfp9c5v3ds1i3jkuagix.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fdfp9c5v3ds1i3jkuagix.png" alt="Once done, we can see the environments."&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;In order to use the variables declared, we simply have to enclose the variables names in double curly braces.&lt;br&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F887z6o6wjzovjwuloju9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F887z6o6wjzovjwuloju9.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fixckly8z7h8tta0g4dyd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fixckly8z7h8tta0g4dyd.png" alt="Alt Text"&gt;&lt;/a&gt;  &lt;/p&gt;
&lt;h2&gt;
  
  
  Scripts:
&lt;/h2&gt;

&lt;p&gt;Scripts can be of two types:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pre-request Script
&lt;/li&gt;
&lt;li&gt;Test Script
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Pre-request Scripts:
&lt;/h3&gt;

&lt;p&gt;Pre-request Scripts gives us the option to execute something right before sending a request. This can be anything such as setting a variable.&lt;br&gt;&lt;br&gt;
Say, we want to set the date variable to the current date in every request, we can do it by adding the following in the Pre-Request Scripts section&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;pm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;environment&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;set&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;time&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Date&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;  
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Other Scripts (Tests):
&lt;/h3&gt;

&lt;p&gt;The "Test" section serves a generic purpose of running test cases as well as using it to perform some other tasks such as setting up variables dynamically, chaining requests, etc., right after a request has finished running.&lt;br&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F4uhp2fdl6dvndqplha0z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F4uhp2fdl6dvndqplha0z.png" alt="Alt Text"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;All this happens due to the Postman Sandbox.&lt;br&gt;&lt;br&gt;
Postman Sandbox is a JavaScript execution environment that lets us play with our requests and getting more out of it.  &lt;/p&gt;

&lt;p&gt;Postman also provides the console option where we can debug side-by-side the tests that we are writing.&lt;br&gt;&lt;br&gt;
We can make an entry into the console using the simple JavaScript console utilities such as&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;console.log(),
console.error(),
console.info()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, let's say we have to save a parameter from the response into a variable. We can simply write a script for that.&lt;br&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F0ek0329euxqdhgiiufi1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F0ek0329euxqdhgiiufi1.png" alt="Alt Text"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;The value for "token" will be set in the environment and we can use it later just like any other variable.&lt;br&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fn6t3eqw43nrn56s6tzuc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fn6t3eqw43nrn56s6tzuc.png" alt="Alt Text"&gt;&lt;/a&gt;  &lt;/p&gt;
&lt;h2&gt;
  
  
  Chaining Requests:
&lt;/h2&gt;

&lt;p&gt;Variables are not only useful in switching between the environments, but they also come really handy when we want to set the values from one request and use it into another. We can do this using the scripts we just learned about.  &lt;/p&gt;

&lt;p&gt;Let's see how we can do this:&lt;br&gt;&lt;br&gt;
Suppose we want to fetch the current weather of a particular place.&lt;br&gt;&lt;br&gt;
We are using two APIs to fulfill our purpose:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://locationiq.com" rel="noopener noreferrer"&gt;LocationIQ&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://darksky.net/dev" rel="noopener noreferrer"&gt;Dark Sky&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We send our location to LocationIQ and get the latitude-longitude pair. We then use these values to get the weather using the Dark Sky API.&lt;br&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F9u3hssm6dgc9xla58tsk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F9u3hssm6dgc9xla58tsk.png" alt="Alt Text"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;The values have been set (we can see the preview on hovering)&lt;br&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fhg6xgfqb0fveuh19az53.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fhg6xgfqb0fveuh19az53.png" alt="Alt Text"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;We simply have to use the variables to get the values from the previous request into the current one.&lt;br&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fyiuy8l5bds7p1ntmdn5i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fyiuy8l5bds7p1ntmdn5i.png" alt="Alt Text"&gt;&lt;/a&gt;  &lt;/p&gt;
&lt;h2&gt;
  
  
  Adding Tests:
&lt;/h2&gt;

&lt;p&gt;We can run a sequence of tests on the completion of a request.  &lt;/p&gt;

&lt;p&gt;Postman provides us a lot of sample test scripts that we can simply add by clicking on it.&lt;br&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F4v8ddgo4uh09elosvsll.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F4v8ddgo4uh09elosvsll.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
Here the first argument in the method test gives the name to that test, and the following argument is the function that executes the test.  &lt;/p&gt;

&lt;p&gt;Postman sandbox provides us a variety of options to test the desirability of the response. We can write them as:&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;pm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;to&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;be&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;condition&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;  
&lt;span class="nx"&gt;pm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;to&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;not&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;be&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;condition&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;  
&lt;span class="nx"&gt;pm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;to&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;have&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;condition&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;  
&lt;span class="nx"&gt;pm&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;response&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;to&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;not&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;have&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;condition&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;  
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Say we have to check, in our weather example, that we get an OK response and the response always contains the current weather. We can do it as below:&lt;br&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fc7m6kbyd3sj9i5sirt59.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fc7m6kbyd3sj9i5sirt59.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
And then we can see if our test cases have passed in the "Test Results" section&lt;br&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F237swiw5l28h4pxpyrlz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F237swiw5l28h4pxpyrlz.png" alt="Alt Text"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;h2&gt;
  
  
  Running a Collection:
&lt;/h2&gt;

&lt;p&gt;Postman provides us a feature called the Collection Runner. It helps us run all the APIs within a collection one after the other.&lt;br&gt;&lt;br&gt;
The Collection Runner then gives us the details of all the APIs that ran successfully with all their details.  &lt;/p&gt;

&lt;p&gt;Let's take a look.&lt;br&gt;
I have a collection "Task Manager" which has a sub-folder "Users".&lt;br&gt;&lt;br&gt;
The Users folder contains the whole lifecycle of the user form creation to login to update to finally deletion.&lt;br&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F6q89swb7992mzgq3vfoq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F6q89swb7992mzgq3vfoq.png" alt="Alt Text"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fjruvrw8xu3o38lpvt0hg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fjruvrw8xu3o38lpvt0hg.png" alt="Alt Text"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;On running the collection we get something like this:&lt;br&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Futk6m004j0uzel5qvw9w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Futk6m004j0uzel5qvw9w.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
All the green dots denote that the request was run successfully.  &lt;/p&gt;

&lt;p&gt;We can also click on a particular request to see its info:&lt;br&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F4wqqrfpk8m1ti7tdcrwq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F4wqqrfpk8m1ti7tdcrwq.png" alt="Alt Text"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;h2&gt;
  
  
  Authorization:
&lt;/h2&gt;

&lt;p&gt;Postman provides us a lot of options to authorize and authenticate our requests.&lt;br&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F1143acpsro2nmkxoiyj9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F1143acpsro2nmkxoiyj9.png" alt="Alt Text"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;With respect to the option we choose, we are given further options corresponding to the option we have selected.&lt;br&gt;&lt;br&gt;
Say, if we choose OAuth 1.0, we will be required to fill out the details such as "Consumer Key", "Consumer Secret", "Access Token" and "Token Secret".&lt;br&gt;&lt;br&gt;
If we choose Bearer Token, then we simply have to input the JWT token which would be appended to the header of our requests, hence authenticating it.  &lt;/p&gt;

&lt;p&gt;Remember the example in the scripts section? No? Scroll up.&lt;br&gt;&lt;br&gt;
There we had set the token value from the response as an environment variable, we can simply use that value from the environment into our corresponding request, this sparing us of the hassle of copying the token everywhere to each one of our requests.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F494b2peivdyeefigs8ww.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F494b2peivdyeefigs8ww.png" alt="Alt Text"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;Wasn't it amazing.&lt;br&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F184r7daz68k69n9prxnk.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F184r7daz68k69n9prxnk.gif" alt="Alt Text"&gt;&lt;/a&gt;  &lt;/p&gt;




&lt;p&gt;That was all for this article. I have some more features in mind that I may write in future posts.&lt;br&gt;&lt;br&gt;
If you want to learn more about Postman features then refer to the following links:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://learning.getpostman.com/docs" rel="noopener noreferrer"&gt;Postman Documantation&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/channel/UCocudCGVb3MmhWQ1aoIgUQw" rel="noopener noreferrer"&gt;Postman Official YouTube Channel&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Enjoy building APIs&lt;br&gt;&lt;br&gt;
Cheers 🍻&lt;/p&gt;

</description>
      <category>postman</category>
      <category>javascript</category>
      <category>rest</category>
      <category>api</category>
    </item>
  </channel>
</rss>
