<?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: ozkeisar</title>
    <description>The latest articles on DEV Community by ozkeisar (@ozkeisar).</description>
    <link>https://dev.to/ozkeisar</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%2F1469530%2F26f56df6-dff7-477b-a666-a51002959c6e.jpg</url>
      <title>DEV Community: ozkeisar</title>
      <link>https://dev.to/ozkeisar</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ozkeisar"/>
    <language>en</language>
    <item>
      <title>Give Juniors a Chance</title>
      <dc:creator>ozkeisar</dc:creator>
      <pubDate>Mon, 15 Sep 2025 20:14:17 +0000</pubDate>
      <link>https://dev.to/ozkeisar/give-juniors-a-chance-31pa</link>
      <guid>https://dev.to/ozkeisar/give-juniors-a-chance-31pa</guid>
      <description>&lt;p&gt;It's no secret that it's hard right now for juniors to find a job in tech. The market has shifted dramatically, and entry-level positions are becoming increasingly rare. Companies are looking for senior developers who can hit the ground running, and the traditional junior developer role seems to be disappearing.&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%2Fmedia1.giphy.com%2Fmedia%2Fv1.Y2lkPTZjMDliOTUyYm9paWtyb201NjI4OXlnNXJkdXhrdDZxajc5cDRibDkwbHBnajk1ZiZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw%2FncCF1KnjxSHc90be1k%2Fgiphy.gif" 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%2Fmedia1.giphy.com%2Fmedia%2Fv1.Y2lkPTZjMDliOTUyYm9paWtyb201NjI4OXlnNXJkdXhrdDZxajc5cDRibDkwbHBnajk1ZiZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw%2FncCF1KnjxSHc90be1k%2Fgiphy.gif" alt="door closing" width="480" height="480"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;The rise of AI has fundamentally changed the equation. Tasks that used to be perfect for junior developers - writing boilerplate code, fixing simple bugs, implementing basic features - can now be handled by AI assistants. Why would a company hire a junior developer when a senior developer with AI tools can be 10x more productive? This creates a vicious cycle: juniors can't get experience because there are no junior positions, and there are no junior positions because companies want experienced developers.&lt;/p&gt;

&lt;p&gt;But here's the thing - we still need fresh talent in tech. We need new perspectives, diverse backgrounds, and hungry minds eager to learn. The question is: how do we evaluate junior candidates when they haven't had the chance to prove themselves in a professional setting?&lt;/p&gt;

&lt;h2&gt;
  
  
  A Better Way Forward
&lt;/h2&gt;

&lt;p&gt;I believe there's a solution that benefits everyone: companies should leverage their official sponsored open source projects as a proving ground for junior developers. Not by creating artificial test projects or contrived coding challenges, but by opening up real contributions to real projects that matter.&lt;/p&gt;

&lt;p&gt;Here's how it would work: instead of the traditional resume-interview-rejection cycle, companies could point candidates to their sponsored open source projects. These could be projects they maintain, contribute to regularly, or financially support. The candidates would tackle real issues - the same ones that need solving anyway. No made-up problems, no take-home tests that get thrown away, but actual contributions that benefit the community.&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%2Fmedia3.giphy.com%2Fmedia%2Fv1.Y2lkPTZjMDliOTUyNGUyamdlYjN2ODdsb2xvcmsybDNqYmN6aDJzeGV0OWtycGJmNm93aCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw%2FcFkiFMDg3iFoI%2Fgiphy.gif" 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%2Fmedia3.giphy.com%2Fmedia%2Fv1.Y2lkPTZjMDliOTUyNGUyamdlYjN2ODdsb2xvcmsybDNqYmN6aDJzeGV0OWtycGJmNm93aCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw%2FcFkiFMDg3iFoI%2Fgiphy.gif" alt="git merge" width="400" height="224"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With today's tools and AI assistance, contributing to open source isn't as daunting as it once was. AI can help juniors understand codebases faster, write better documentation, and even assist with debugging. It levels the playing field in many ways. What it can't do is replace the problem-solving skills, the persistence, and the ability to collaborate that makes a good developer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Real Signal, Not Noise
&lt;/h2&gt;

&lt;p&gt;This approach gives companies something invaluable: the ability to see how a candidate actually works. How do they communicate in pull request reviews? Do they ask good questions? Can they take feedback? Do they persist when things get difficult? These are the qualities that actually matter, and they're impossible to gauge in a traditional interview.&lt;/p&gt;

&lt;p&gt;For juniors, it's a chance to build a real portfolio. Even if they don't get hired by that specific company, they've contributed to open source, learned from code reviews, and have something concrete to show the next potential employer. They're gaining real experience, not just spinning their wheels on another rejected application.&lt;/p&gt;

&lt;p&gt;Companies don't need to create special evaluation repositories or manufacture issues just for candidates. The beauty of this approach is using what already exists - real problems that need real solutions. By sponsoring or collaborating with existing open source projects, they're also giving back to the community that their businesses are built on.&lt;/p&gt;

&lt;h2&gt;
  
  
  Making It Work
&lt;/h2&gt;

&lt;p&gt;This isn't about free labor or exploiting desperate juniors. It's about creating a more transparent, merit-based path into the industry. The traditional hiring process is broken for juniors - it rewards those who can afford unpaid internships or have connections, not necessarily those with the most potential.&lt;/p&gt;

&lt;p&gt;We keep talking about the "talent shortage" in tech while simultaneously making it nearly impossible for new talent to enter the field. Maybe it's time we tried something different.&lt;/p&gt;

&lt;h2&gt;
  
  
  Your Thoughts?
&lt;/h2&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%2Fmedia3.giphy.com%2Fmedia%2Fv1.Y2lkPTZjMDliOTUyMXIyZHBpaTUybHlleWEyNTQ4dGtkcTR2bG5mMmI0eGR3YzJ0bjc3ZCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw%2F8acGIeFnqLA7S%2Fgiphy.gif" 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%2Fmedia3.giphy.com%2Fmedia%2Fv1.Y2lkPTZjMDliOTUyMXIyZHBpaTUybHlleWEyNTQ4dGtkcTR2bG5mMmI0eGR3YzJ0bjc3ZCZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw%2F8acGIeFnqLA7S%2Fgiphy.gif" alt="think" width="250" height="250"&gt;&lt;/a&gt; &lt;br&gt;
What do you think? Have you seen companies successfully use open source as a hiring pipeline? If you're a junior developer, would this approach appeal to you? If you're involved in hiring, what barriers would prevent you from trying this? I'd love to hear your thoughts and experiences.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>beginners</category>
      <category>opensource</category>
    </item>
    <item>
      <title>test</title>
      <dc:creator>ozkeisar</dc:creator>
      <pubDate>Thu, 06 Mar 2025 15:37:11 +0000</pubDate>
      <link>https://dev.to/ozkeisar/still-using-wiremock-heres-why-you-should-switch-to-mockingbird-4pji</link>
      <guid>https://dev.to/ozkeisar/still-using-wiremock-heres-why-you-should-switch-to-mockingbird-4pji</guid>
      <description>&lt;p&gt;test&lt;/p&gt;

</description>
      <category>programming</category>
      <category>tooling</category>
      <category>productivity</category>
      <category>opensource</category>
    </item>
    <item>
      <title>check out this!</title>
      <dc:creator>ozkeisar</dc:creator>
      <pubDate>Mon, 13 Jan 2025 16:59:27 +0000</pubDate>
      <link>https://dev.to/ozkeisar/check-out-this-o2d</link>
      <guid>https://dev.to/ozkeisar/check-out-this-o2d</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/ozkeisar" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&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%2Fuser%2Fprofile_image%2F1469530%2F26f56df6-dff7-477b-a666-a51002959c6e.jpg" alt="ozkeisar"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/ozkeisar/okay-seriously-mockingbird-git-is-a-game-changer-and-i-made-a-video-about-it-3o6m" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Okay, Seriously, Mockingbird + Git is a Game Changer (and I Made a Video About It!) 🚀&lt;/h2&gt;
      &lt;h3&gt;ozkeisar ・ Jan 13&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#programming&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#tutorial&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#opensource&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>git</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Okay, Seriously, Mockingbird + Git is a Game Changer (and I Made a Video About It!) 🚀</title>
      <dc:creator>ozkeisar</dc:creator>
      <pubDate>Mon, 13 Jan 2025 16:57:09 +0000</pubDate>
      <link>https://dev.to/ozkeisar/okay-seriously-mockingbird-git-is-a-game-changer-and-i-made-a-video-about-it-3o6m</link>
      <guid>https://dev.to/ozkeisar/okay-seriously-mockingbird-git-is-a-game-changer-and-i-made-a-video-about-it-3o6m</guid>
      <description>&lt;p&gt;Hey! So, I finally finished that video I was working on, and I gotta say, I'm kinda hyped about it. It's all about using &lt;strong&gt;Mockingbird with Git&lt;/strong&gt;, If you've ever felt like managing mock data is just a huge pain, or like your team is always stepping on each other's mocks, then you might actually dig this.&lt;/p&gt;

&lt;p&gt;Basically, this combo is way more useful than it sounds. It means less time messing with mock setups, and more time actually building stuff. In the video, I just walk through everything, from getting a project going to sharing it with your team super easily.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What You'll Actually Learn:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Hook Up Mockingbird to Git:&lt;/strong&gt; I'll show you how to connect your Mockingbird stuff to Git, so everything gets version-controlled. Even your mock data.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Share Mocks Like It's Nothing:&lt;/strong&gt; You'll see how to push and pull your mock data, making it easy for everyone on your team to stay on the same page.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Branching for Mocks? Yep, Weird but Cool:&lt;/strong&gt; Use Git branches to keep your mocks organized, which is actually kind of awesome.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Clone Stuff Fast:&lt;/strong&gt; Set up your mocks quick for the whole team by cloning your project. It's a total lifesaver.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Git Right in Mockingbird:&lt;/strong&gt; I'll even show you how to use Git commands directly from the app - pretty handy.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Save Some Money (Maybe):&lt;/strong&gt; Using Git for mocks means you don't need extra servers, which might save you a buck or two.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Why You Should Bother:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Look, I know, we're all busy. But this is one of those things that can just make your life a little bit easier. Mockingbird is cool, but add Git, and you've got:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Teamwork that Doesn't Suck:&lt;/strong&gt; Sharing mocks without any drama, that's the goal here.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Version Control For Your Mocks:&lt;/strong&gt; Track changes, go back if you mess up, and keep different versions.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Less Mess:&lt;/strong&gt; Skip the extra server setup; Git does all the hard work.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Use What You Already Know:&lt;/strong&gt; It's Git, so you probably already know how it works anyway.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Do Stuff Faster:&lt;/strong&gt; Streamline stuff so you can get back to the code.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Alright, Enough of Me Blabbing, Watch the Video!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If this sounds up your alley, then click on the link and let me know what you think.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/wwYqo3e1ef8"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sneak Peek Inside the Video:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Set Up a Project (It's Not Scary):&lt;/strong&gt; Start a Mockingbird project and add a couple routes.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Connect to Git:&lt;/strong&gt; Link your project to GitHub, GitLab, whatever you use.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Push Your Mocks:&lt;/strong&gt; Save your data to Git, so your team can see it.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Clone &amp;amp; Branch:&lt;/strong&gt; Make copies of your project and use branches to keep things organized.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Pull &amp;amp; Merge:&lt;/strong&gt; Bring updates to your project.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Built In Git:&lt;/strong&gt; Showing the built in terminal.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Recap&lt;/strong&gt; Just going over all of the major things we went over.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Last Thing:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Leave a comment on the video if you have thoughts or questions.&lt;/li&gt;
&lt;li&gt;  Subscribe to my channel for more of these, I guess.&lt;/li&gt;
&lt;li&gt;  Share this with your team if you think they would find it useful!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'm actually really curious to see what you think about it, so check it out and let me know.&lt;/p&gt;

&lt;p&gt;Thanks, and yeah, happy mocking! 😄&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>tutorial</category>
      <category>opensource</category>
    </item>
    <item>
      <title>🎥 New Video Tutorial: Getting Started with Mockingbird 🚀</title>
      <dc:creator>ozkeisar</dc:creator>
      <pubDate>Tue, 31 Dec 2024 07:44:35 +0000</pubDate>
      <link>https://dev.to/ozkeisar/new-video-tutorial-getting-started-with-mockingbird-bci</link>
      <guid>https://dev.to/ozkeisar/new-video-tutorial-getting-started-with-mockingbird-bci</guid>
      <description>&lt;p&gt;Hi everyone! 👋&lt;/p&gt;

&lt;p&gt;I’m excited to share that I’ve just released a brand-new video tutorial about &lt;strong&gt;Mockingbird&lt;/strong&gt;, an open-source tool I built to help developers and QA teams create mock environments quickly and efficiently. Whether you’re just starting out with Mockingbird or looking to dive deeper into its features, this tutorial is for you!&lt;/p&gt;




&lt;h2&gt;
  
  
  What You'll Learn in the Tutorial:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;How to download and install Mockingbird&lt;/strong&gt; on your machine (Mac, Windows, and Docker).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Creating your first project&lt;/strong&gt;: Set up mock servers with REST or GraphQL routes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Managing responses&lt;/strong&gt;: Learn to create multiple responses for each route and simulate various scenarios.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Advanced features&lt;/strong&gt;: Explore Git integration, proxy capabilities, and monitoring API calls.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔗 Watch Video
&lt;/h2&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/PbwtlnNdHkQ"&gt;
&lt;/iframe&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  Why Mockingbird?
&lt;/h2&gt;

&lt;p&gt;Mockingbird simplifies API testing and development workflows by providing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open-source flexibility and transparency.&lt;/li&gt;
&lt;li&gt;Support for REST and GraphQL APIs.&lt;/li&gt;
&lt;li&gt;Built-in &lt;strong&gt;Git integration&lt;/strong&gt; for secure data management.&lt;/li&gt;
&lt;li&gt;A &lt;strong&gt;proxy feature&lt;/strong&gt; to quickly create mocks from real API calls.&lt;/li&gt;
&lt;li&gt;Monitoring tools for all API activity in your project.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔥 Next Steps:
&lt;/h2&gt;

&lt;p&gt;After watching the tutorial, you’ll be ready to:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create your first mock server with Mockingbird.&lt;/li&gt;
&lt;li&gt;Add custom responses and routes to simulate different API scenarios.&lt;/li&gt;
&lt;li&gt;Explore how Mockingbird can streamline your development and testing workflows.&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  💬 Feedback and Questions:
&lt;/h2&gt;

&lt;p&gt;Your feedback is invaluable! Feel free to drop a comment here or on the video. If you encounter any issues or have feature suggestions, join the discussion on GitHub: &lt;a href="https://github.com/ozkeisar/mockingbird" rel="noopener noreferrer"&gt;Mockingbird GitHub Repository&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  🙌 What's Next?
&lt;/h2&gt;

&lt;p&gt;This is just the beginning! I’m working on more tutorials, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Setting up &lt;strong&gt;Docker with Mockingbird&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Using Mockingbird for &lt;strong&gt;GraphQL servers&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Advanced scenarios like testing with &lt;strong&gt;Git integration&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;Using &lt;em&gt;Mockingbird Presets&lt;/em&gt; for integration tests, and scenario switching using Mockingbird API &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Stay tuned for more updates, and don’t forget to &lt;a href="https://dev.to/ozkeisar"&gt;follow me on DEV.to&lt;/a&gt;!&lt;/p&gt;




&lt;p&gt;Thanks for your support, and I hope this tutorial helps you get started with Mockingbird! 🎉&lt;/p&gt;

</description>
      <category>programming</category>
      <category>tooling</category>
      <category>webdev</category>
      <category>testing</category>
    </item>
    <item>
      <title>My First Mockingbird Tutorial Video Is Going Live</title>
      <dc:creator>ozkeisar</dc:creator>
      <pubDate>Sun, 29 Dec 2024 21:22:03 +0000</pubDate>
      <link>https://dev.to/ozkeisar/im-nervous-but-excited-my-first-mockingbird-tutorial-video-is-going-live-3h2n</link>
      <guid>https://dev.to/ozkeisar/im-nervous-but-excited-my-first-mockingbird-tutorial-video-is-going-live-3h2n</guid>
      <description>&lt;p&gt;Hey everyone,&lt;/p&gt;

&lt;p&gt;I’m stepping out of my comfort zone to share something I’ve been working on—my first tutorial video for Mockingbird is going live soon on YouTube!&lt;/p&gt;

&lt;p&gt;In this video, I’ll walk through:&lt;/p&gt;

&lt;p&gt;How to download and install Mockingbird&lt;/p&gt;

&lt;p&gt;Setting up your first project&lt;/p&gt;

&lt;p&gt;Exploring the basic features of Mockingbird like multiple responses and more&lt;/p&gt;

&lt;p&gt;Mockingbird was created to solve real challenges I faced in API development, and I hope it can help you too.&lt;/p&gt;

&lt;p&gt;If you’re interested, I’d love for you to register for the video premiere and join me live:&lt;br&gt;
👉 &lt;iframe width="710" height="399" src="https://www.youtube.com/embed/PbwtlnNdHkQ"&gt;
&lt;/iframe&gt;
 &lt;/p&gt;

&lt;p&gt;If you’d like to learn more about Mockingbird in the meantime, feel free to check out my first article:&lt;br&gt;
👉 &lt;a href="https://dev.to/ozkeisar/mockingbird-new-tool-for-your-mock-environments-49j"&gt;Mockingbird: New Tool for Your Mock Environments&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Your support, feedback, and thoughts mean the world to me as I take this big step.&lt;/p&gt;

&lt;p&gt;Thank you for being part of this journey—it’s your encouragement that keeps me going!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>tutorial</category>
      <category>testing</category>
      <category>devdiscuss</category>
    </item>
    <item>
      <title>Dockerize Your Mockingbird Setup: A Quickstart Guide</title>
      <dc:creator>ozkeisar</dc:creator>
      <pubDate>Wed, 21 Aug 2024 12:58:02 +0000</pubDate>
      <link>https://dev.to/ozkeisar/how-to-use-the-mockingbird-docker-image-29mf</link>
      <guid>https://dev.to/ozkeisar/how-to-use-the-mockingbird-docker-image-29mf</guid>
      <description>&lt;p&gt;Mockingbird is a powerful tool for creating and managing mock API environments. This guide will help you get started with the Docker version of Mockingbird, focusing on creating, cloning projects, and managing mock servers via the API.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you are new to Mockingbird we recommend you to start by using &lt;a href="https://github.com/ozkeisar/mockingbird/releases" rel="noopener noreferrer"&gt;Mockingbird app&lt;/a&gt; and reading the &lt;a href="https://dev.to/ozkeisar/mockingbird-new-tool-for-your-mock-environments-49j"&gt;first guide&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;p&gt;Ensure that you have Docker installed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Pull the Mockingbird Docker Image
&lt;/h2&gt;

&lt;p&gt;Start by pulling the Mockingbird Docker image from Docker Hub:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker pull ozkeisar/mockingbird:latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Step 2: Run the Docker Container
&lt;/h2&gt;

&lt;p&gt;Run the Docker container using the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker run &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; 1511:1511 &lt;span class="nt"&gt;--name&lt;/span&gt; mockingbird ozkeisar/mockingbird
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command will:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Start the Mockingbird container in detached mode (&lt;code&gt;-d&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Map port 1512 of your local machine to port 1512 of the container (&lt;code&gt;-p 1512:1512&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Name the container "mockingbird" (&lt;code&gt;--name mockingbird&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&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%2F32bqhw51p6izp8ak3a06.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%2F32bqhw51p6izp8ak3a06.png" alt="Mockingbird in web version" width="800" height="497"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Access the API Documentation
&lt;/h2&gt;

&lt;p&gt;You can access the Swagger documentation to explore the API at:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://localhost:1511/api-docs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2F90g8iq3ewx3ovlifvspg.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%2F90g8iq3ewx3ovlifvspg.png" alt="Mockingbird swagger" width="800" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Create and Clone Projects Using the API
&lt;/h2&gt;

&lt;h3&gt;
  
  
  4.1. Create a Project
&lt;/h3&gt;

&lt;p&gt;To create a new project, use the &lt;code&gt;/project/create&lt;/code&gt; endpoint. Send a POST request with the following JSON body:&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="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"projectName"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"your_project_name"&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4.2. Clone a Project via SSH
&lt;/h3&gt;

&lt;p&gt;To clone a project using SSH, use the &lt;code&gt;/project/clone/ssh&lt;/code&gt; endpoint. Send a POST request with the following JSON body:&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="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"projectName"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"your_project_name"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"sshUrl"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"git@github.com:user/repository.git"&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4.3. Clone a Project via HTTPS
&lt;/h3&gt;

&lt;p&gt;To clone a project using HTTPS, use the &lt;code&gt;/project/clone/https&lt;/code&gt; endpoint. Send a POST request with the following JSON body:&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="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"projectName"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"your_project_name"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"httpsUrl"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"https://github.com/user/repository.git"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"username"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"your_username"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"password"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"your_password"&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  4.4. Open an Existing Project
&lt;/h3&gt;

&lt;p&gt;To open an existing project, use the &lt;code&gt;/project/open&lt;/code&gt; endpoint. Send a POST request with the following JSON body:&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="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"projectName"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"your_project_name"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"directoryPath"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"/path/to/your/project"&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Step 5: Start and Close the Mock Server
&lt;/h2&gt;

&lt;h3&gt;
  
  
  5.1. Start the Mock Server
&lt;/h3&gt;

&lt;p&gt;To start the mock server for a specific project, use the &lt;code&gt;/servers/start&lt;/code&gt; endpoint. Send a POST request with the following JSON body:&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="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"projectName"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"your_project_name"&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;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;h3&gt;
  
  
  &lt;strong&gt;Note:&lt;/strong&gt; Exposing Mock Server Ports
&lt;/h3&gt;

&lt;p&gt;When starting mock servers, ensure that you expose the ports used by these servers so they can be accessed externally. You can do this by adding additional &lt;code&gt;-p&lt;/code&gt; flags when running the Docker container. For example, if your mock server runs on port 4000, include &lt;code&gt;-p 4000:4000&lt;/code&gt; in your Docker run command.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  5.2. Close the Mock Server
&lt;/h3&gt;

&lt;p&gt;To close the running mock server, use the &lt;code&gt;/servers/close&lt;/code&gt; endpoint. Send a POST request without any body:&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 6: Stopping and Removing the Container
&lt;/h2&gt;

&lt;p&gt;To stop the running Mockingbird container, use:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker stop mockingbird
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To remove the container entirely, run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker &lt;span class="nb"&gt;rm &lt;/span&gt;mockingbird
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Follow us on social media
&lt;/h2&gt;

&lt;p&gt;Follow us on &lt;a href="https://x.com/mockingbird_dev?t=0ImvYOXuWojOuSP7DyRGhw&amp;amp;s=08" rel="noopener noreferrer"&gt;X(Twitter)&lt;/a&gt;.&lt;br&gt;
Follow us on &lt;a href="https://www.threads.net/@mockingbird.dev?xmt=AQGzyTXpaoy5xe7FSkWO6aRDNdrCJeJe7KAsCVYVaACPW5M" rel="noopener noreferrer"&gt;Threads&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>docker</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>I built a new way of mocking GraphQL server</title>
      <dc:creator>ozkeisar</dc:creator>
      <pubDate>Mon, 12 Aug 2024 12:41:46 +0000</pubDate>
      <link>https://dev.to/ozkeisar/i-built-a-new-way-of-mocking-graphql-server-i94</link>
      <guid>https://dev.to/ozkeisar/i-built-a-new-way-of-mocking-graphql-server-i94</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Welcome! This guide will take you through the steps to create a GraphQL server using Mockingbird. Whether you’re a developer or a tester, this guide will help you set up a mock GraphQL server, create queries and mutations, and test everything out. By the end, you'll have a robust mock server that makes your development process smoother and faster.&lt;/p&gt;

&lt;p&gt;In previous guides, we covered the basics of mocking with Mockingbird &lt;a href="https://dev.to/ozkeisar/setting-up-your-mock-server-with-mockingbird-1b72"&gt;[1]&lt;/a&gt;&lt;a href="https://dev.to/ozkeisar/optimizing-api-development-workflows-with-mockingbird-presets-17hc"&gt;[2]&lt;/a&gt;&lt;a href="https://dev.to/ozkeisar/creating-and-managing-multiple-projects-and-servers-with-mockingbird-a7b"&gt;[3]&lt;/a&gt;, These guides provided a solid foundation for using Mockingbird in various scenarios. Building on that knowledge, this guide focuses specifically on leveraging Mockingbird to mock GraphQL servers. If you’ve found our previous guides helpful, you’ll find this one equally valuable as it dives into the specifics of handling GraphQL with Mockingbird.&lt;/p&gt;

&lt;p&gt;Let’s dive in and see how Mockingbird can simplify your GraphQL server setup and testing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Download and Install Mockingbird
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Head over to the &lt;a href="https://github.com/ozkeisar/mockingbird/releases" rel="noopener noreferrer"&gt;Mockingbird GitHub releases page&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Download the latest version.&lt;/li&gt;
&lt;li&gt;Once the download is complete, open Mockingbird.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Step 2: Create a New Project or Clone an Existing One
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;When you open Mockingbird, you'll see a "Create Project" screen with three options:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Create New Project&lt;/strong&gt;: Start a new project from scratch by entering a project name.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Clone Existing Project&lt;/strong&gt;: Clone a project by entering the repository URL and any needed authentication details.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open Existing Project&lt;/strong&gt;: Open a project that’s already saved on your computer.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8s4rq8wimlmwsedn1040.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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8s4rq8wimlmwsedn1040.png" alt="mockingbird welcome screen"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: Create a Server
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;After setting up your project, you’ll need to create a server.&lt;/li&gt;
&lt;li&gt;Give your server a name.&lt;/li&gt;
&lt;li&gt;Specify the port number it will run on.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Step 4: Create a Parent
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Next, you need to create a parent for your server.&lt;/li&gt;
&lt;li&gt;Choose the option to create a GraphQL parent.&lt;/li&gt;
&lt;li&gt;Enter a name for the GraphQL parent.&lt;/li&gt;
&lt;li&gt;Set the REST path for the GraphQL endpoint, usually &lt;code&gt;/graphql&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Decide if the parent will be a &lt;code&gt;query&lt;/code&gt; parent or a &lt;code&gt;mutation&lt;/code&gt; parent using the drop-down menu.&lt;/li&gt;
&lt;li&gt;If needed, specify a schema path for nested queries using dot notation (e.g., &lt;code&gt;user.address&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Save the parent once everything is filled out.&lt;/li&gt;
&lt;/ol&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcnnzj7d0e68nrw459vv2.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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcnnzj7d0e68nrw459vv2.png" alt="parent dialog"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5: Create Queries or Mutations
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;In the Parent Details page, click "Add Query" or "Add Mutation" based on your parent type.&lt;/li&gt;
&lt;li&gt;Enter a name for the query or mutation. This name will be the schema signature and should include parameters if necessary. For example, a query called &lt;code&gt;users&lt;/code&gt; that takes an ID would be &lt;code&gt;users(id: String)&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;For complex parameters like custom objects, use &lt;code&gt;Any&lt;/code&gt; as the type. For example, &lt;code&gt;users(param: Any)&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Optionally, add a description.&lt;/li&gt;
&lt;li&gt;Save your query or mutation.&lt;/li&gt;
&lt;/ol&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmrmzkhml19tkpr4obeca.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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmrmzkhml19tkpr4obeca.png" alt="create query dialog"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 6: Add Multiple Responses to the Query or Mutation
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Go to the Query or Mutation Details page.&lt;/li&gt;
&lt;li&gt;Click "Add Response."&lt;/li&gt;
&lt;li&gt;In the window that opens, enter your response. You have three options:

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;JSON&lt;/strong&gt;: For JSON responses, you can automatically generate types. Click "Generate" to create the response type in the editor.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Function&lt;/strong&gt;: For function responses, you need to manually insert the response type. Alternatively, start with a JSON response to generate the type, then switch to a function.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Proxy&lt;/strong&gt;: For proxy responses, manually insert the response type, or use a JSON response to generate the type first, then switch to proxy.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Also, fill in the "Response Type Name" field with the main type name of the response.&lt;/li&gt;
&lt;li&gt;Save the response.&lt;/li&gt;
&lt;/ol&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frrk7l85eu89lw8j0ej5j.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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frrk7l85eu89lw8j0ej5j.png" alt="Response dialog"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 7: Enable Proxy Mode (Optional)
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Mockingbird can act as a proxy server for GraphQL. If a query or mutation isn’t found locally, it forwards the request to the target server.&lt;/li&gt;
&lt;li&gt;Once you get a response from the target server, you can add both the query and its response to Mockingbird from the console.&lt;/li&gt;
&lt;/ol&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjuibo7ie7ivf2mb9hc0w.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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjuibo7ie7ivf2mb9hc0w.png" alt="Server details screen"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 8: Start the Server and Test
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Start the server to apply your configurations.&lt;/li&gt;
&lt;li&gt;After the server is running, you’ll get a link to the GraphQL playground.&lt;/li&gt;
&lt;li&gt;Use this link to open the playground.&lt;/li&gt;
&lt;li&gt;There will also be a button to copy a sample query for your setup.&lt;/li&gt;
&lt;li&gt;Paste the sample query into the playground to verify you’re getting the desired response from the GraphQL server.&lt;/li&gt;
&lt;/ol&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4bmjb8qcvaq9k6iyhi9k.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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4bmjb8qcvaq9k6iyhi9k.png" alt="Query details screen"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Epilogue
&lt;/h2&gt;

&lt;p&gt;Mockingbird makes the complex task of mocking a GraphQL server much easier. This tool is perfect for developers and testers, allowing them to simulate various scenarios without waiting for the actual server to be built. With features like multiple response creation, type generation, and easy switching between setups, Mockingbird streamlines your development and testing processes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Proxy Mode
&lt;/h2&gt;

&lt;p&gt;One of Mockingbird’s standout features is its ability to act as a proxy server, even for GraphQL. This feature is incredibly useful when you have queries or mutations that are not defined locally in Mockingbird. Here’s how it works:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Forwarding Requests&lt;/strong&gt;: When a query or mutation isn’t found in your local Mockingbird setup, Mockingbird forwards the request to the target server. This ensures that you always get a response, even if it’s not yet mocked locally.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Capturing Responses&lt;/strong&gt;: Once Mockingbird receives the response from the target server, it allows you to add both the query and its response to your local Mockingbird setup. This means you can quickly build out your mock server using real data without manually defining every response upfront.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Simplifying Setup&lt;/strong&gt;: This proxy feature makes setting up a mock server with real data quick and hassle-free. Instead of having to manually enter every possible query and response, you can let Mockingbird capture and store them for you as they come in.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This feature is perfect for quickly setting up realistic mock environments, especially in dynamic development and testing scenarios. It saves you time and effort, ensuring that your mock server is as accurate and comprehensive as possible with minimal manual intervention.&lt;/p&gt;

&lt;p&gt;Whether you’re developing new features, running automated tests, or setting up complex integrations, Mockingbird’s proxy capabilities save you time and reduce errors. Its flexibility and ease of use make it a crucial tool for modern software development and testing environments.&lt;/p&gt;

&lt;p&gt;By using Mockingbird, you can focus on building and refining your application, knowing your mock environment is reliable and efficient.&lt;/p&gt;

&lt;h2&gt;
  
  
  Join the Community
&lt;/h2&gt;

&lt;p&gt;If this guide has helped you why not give it a try? You can &lt;a href="https://github.com/ozkeisar/mockingbird/releases" rel="noopener noreferrer"&gt;download Mockingbird&lt;/a&gt; and start building your own mock servers today. If you like what you see, a star on &lt;a href="https://github.com/ozkeisar/mockingbird" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; would mean a lot—it’s a small way to show support for the project. And if you’re interested in contributing, we’d love to have you onboard. Your feedback and contributions are what make Mockingbird better with each update.&lt;/p&gt;

</description>
      <category>learning</category>
      <category>api</category>
      <category>graphql</category>
      <category>frontend</category>
    </item>
    <item>
      <title>How Can We Improve Mockingbird for Better Developer Experience?</title>
      <dc:creator>ozkeisar</dc:creator>
      <pubDate>Tue, 25 Jun 2024 12:16:49 +0000</pubDate>
      <link>https://dev.to/ozkeisar/how-can-we-improve-mockingbird-for-better-developer-experience-3i9d</link>
      <guid>https://dev.to/ozkeisar/how-can-we-improve-mockingbird-for-better-developer-experience-3i9d</guid>
      <description>&lt;p&gt;Hello DEV community!&lt;/p&gt;

&lt;p&gt;I’ve been working on &lt;a href="https://github.com/ozkeisar/mockingbird"&gt;Mockingbird&lt;/a&gt;, a tool designed to enhance API development workflows by providing features like multiple responses for each route, presets for easy scenario switching, Git integration, and more. My goal is to make Mockingbird a seamless and powerful tool for developers.&lt;/p&gt;

&lt;p&gt;I’d love to hear from you all:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;What features would you like to see in Mockingbird that would make it more useful for your projects?&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Are there any pain points you currently experience with mock servers that Mockingbird could address?&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;How important is the support for WebSocket and gRPC in your workflow, and what specific functionalities would you need?&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Your feedback and suggestions will be incredibly valuable in guiding the future development of Mockingbird. Thank you!&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>javascript</category>
      <category>typescript</category>
      <category>api</category>
    </item>
    <item>
      <title>Creating and Managing Multiple Projects and Servers with Mockingbird</title>
      <dc:creator>ozkeisar</dc:creator>
      <pubDate>Sun, 16 Jun 2024 09:45:00 +0000</pubDate>
      <link>https://dev.to/ozkeisar/creating-and-managing-multiple-projects-and-servers-with-mockingbird-a7b</link>
      <guid>https://dev.to/ozkeisar/creating-and-managing-multiple-projects-and-servers-with-mockingbird-a7b</guid>
      <description>&lt;p&gt;In the fast-paced world of software development, efficiency and productivity are paramount. Mockingbird, a powerful tool designed for creating and managing mock environments, offers developers a streamlined solution to enhance their workflows. This blog post will guide you through the process of creating and managing multiple projects and servers using Mockingbird, ensuring you can maximize your development and testing capabilities.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Use Mockingbird?
&lt;/h2&gt;

&lt;p&gt;Mockingbird is designed to address common challenges faced by developers, such as waiting for server development to be completed, which often leads to project delays. By providing a robust mock environment, Mockingbird allows developers to test APIs without the need for additional servers, significantly reducing integration times and boosting productivity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Started with Mockingbird
&lt;/h2&gt;

&lt;p&gt;Before diving into managing multiple projects and servers, let's start with the basics of setting up Mockingbird.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Download and Installation&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Download the latest version of Mockingbird from the &lt;a href="https://github.com/ozkeisar/mockingbird/releases" rel="noopener noreferrer"&gt;Releases page on GitHub&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Run the installer and follow the instructions to complete the installation.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Initializing Your Project&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Launch Mockingbird and start a new project by entering a unique project name in the 'project name' input field.&lt;/li&gt;
&lt;li&gt;Open or create or clone repository, to start your project in Mockingbird.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Managing Multiple Projects
&lt;/h2&gt;

&lt;p&gt;Mockingbird allows you to manage multiple projects seamlessly, making it an ideal tool for teams working on various applications simultaneously.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Creating another Project&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the Mockingbird top bar, open the projects dropdown and then click on the &lt;code&gt;+ new project&lt;/code&gt; button.&lt;/li&gt;
&lt;li&gt;Open or create or clone repository, to start your project in Mockingbird.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Switching Between Projects&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use the project dropdown menu to switch between different projects.&lt;/li&gt;
&lt;li&gt;Each project maintains its own set of routes, responses, and server configurations, ensuring a clean and organized workspace.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Setting Up and Managing Multiple Servers
&lt;/h2&gt;

&lt;p&gt;Mockingbird's ability to handle multiple servers within a single project is one of its standout features. This capability is particularly useful for complex applications that interact with various backend services.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Initiating a New Server&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click on the &lt;code&gt;+ new server&lt;/code&gt; button in the side bar.&lt;/li&gt;
&lt;li&gt;A dialogue box will appear; insert your server name and hit &lt;code&gt;SAVE&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Configuring Your Server&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;After creating your server instance, click on the server name to open its details.&lt;/li&gt;
&lt;li&gt;Enter your real server's base URL in the Target URL field to let Mockingbird act as a proxy when necessary and hit &lt;code&gt;save&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Click &lt;code&gt;Start Server&lt;/code&gt; to activate your mock server and access the server's IP by clicking on the &lt;code&gt;Servers IP&lt;/code&gt; button.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Creating Local Routes&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Add a parent to hold routes by selecting &lt;code&gt;New Parent&lt;/code&gt; and specifying the path and filename.&lt;/li&gt;
&lt;li&gt;Define the HTTP method and path for each route, then add the route.&lt;/li&gt;
&lt;li&gt;Choose between function, JSON, or proxy responses, set response details, and save.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Monitoring and Debugging
&lt;/h2&gt;

&lt;p&gt;Mockingbird provides a console to view all API requests and how they are handled, offering valuable insights for debugging and optimization.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Using the Console&lt;/strong&gt;:

&lt;ul&gt;
&lt;li&gt;Open the Mockingbird console to monitor incoming API requests.&lt;/li&gt;
&lt;li&gt;Analyze the requests and responses to identify and resolve issues promptly.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Add routes from proxy requests.&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;Mockingbird is a versatile tool that simplifies the process of creating and managing multiple projects and servers. By leveraging its intuitive interface, powerful presets, and comprehensive monitoring capabilities, developers can significantly enhance their productivity and streamline their development workflows. Whether you're working on a single application or managing multiple projects, Mockingbird provides the tools you need to achieve seamless and efficient development experiences.&lt;/p&gt;

&lt;h2&gt;
  
  
  Upcoming in This Series
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Setting up a GraphQL Mock Server with Mockingbird.&lt;/li&gt;
&lt;li&gt;Dynamically Updating Mockingbird Responses from Automated Tests.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Engage With Us
&lt;/h2&gt;

&lt;p&gt;Follow me on &lt;a href="https://x.com/ozkeisar" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt;, also you can join the discussion or share your experiences on our &lt;a href="https://www.reddit.com/r/mockingbird_dev/" rel="noopener noreferrer"&gt;subreddit&lt;/a&gt; or directly in the comments below. Your feedback helps us improve and guides our future developments.&lt;/p&gt;

&lt;p&gt;Happy mocking, fellow developers!&lt;/p&gt;

</description>
      <category>testing</category>
      <category>webdev</category>
      <category>tooling</category>
      <category>programming</category>
    </item>
    <item>
      <title>Mockingbird Presets: Optimizing API Development Workflows</title>
      <dc:creator>ozkeisar</dc:creator>
      <pubDate>Wed, 12 Jun 2024 09:45:00 +0000</pubDate>
      <link>https://dev.to/ozkeisar/optimizing-api-development-workflows-with-mockingbird-presets-17hc</link>
      <guid>https://dev.to/ozkeisar/optimizing-api-development-workflows-with-mockingbird-presets-17hc</guid>
      <description>&lt;p&gt;In our previous articles, we explored the &lt;a href="https://dev.to/ozkeisar/mockingbird-new-tool-for-your-mock-environments-49j"&gt;fundamentals of Mockingbird&lt;/a&gt; and &lt;a href="https://dev.to/ozkeisar/mockingbird-new-tool-for-your-mock-environments-49j"&gt;how to set up your mock server&lt;/a&gt;. In this third installment of our Mockingbird series, we delve into one of its most powerful features: Presets. Presets significantly enhance productivity and efficiency when testing and debugging APIs, making them an essential tool for developers and QA teams.&lt;/p&gt;

&lt;h3&gt;
  
  
  What are Presets?
&lt;/h3&gt;

&lt;p&gt;Presets in Mockingbird are collections of routes with predefined responses. They allow you to quickly switch between different test scenarios by applying a preset, which updates the active responses on all routes within that preset to their specified values.&lt;/p&gt;

&lt;h3&gt;
  
  
  Benefits of Using Presets
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Efficient Testing and Debugging&lt;/strong&gt;: Presets enable you to rapidly switch between different test scenarios without manually changing each route's response. This streamlines the testing and debugging process, saving valuable time and effort.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;QA Automation and Manual Testing&lt;/strong&gt;: Presets are particularly useful for QA automation and manual testing. By applying a preset, you can quickly set up the desired test environment, ensuring consistent and reliable testing across different scenarios.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Developer Productivity&lt;/strong&gt;: Developers can leverage presets to efficiently debug specific scenarios without the need to manually modify each route's response. This enhances productivity and allows for quicker issue resolution.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Consistent Demos&lt;/strong&gt;: Presets are invaluable for demonstrating your application's features. By setting up various test scenarios in advance, you can seamlessly switch between them during a demo, providing a polished and professional presentation.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Training and Onboarding&lt;/strong&gt;: Presets can be used to create specific scenarios for training new team members. This ensures that new developers or testers can easily understand and interact with the system without setting up their own test cases.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Simulating Edge Cases&lt;/strong&gt;: Presets allow you to quickly simulate edge cases or rare scenarios that are hard to reproduce in a live environment. This ensures comprehensive testing and robustness of your application.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Collaboration Across Teams&lt;/strong&gt;: Presets can be shared across different teams, ensuring that everyone is testing and developing against the same scenarios. This improves collaboration and reduces discrepancies between environments.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Using Presets in Mockingbird
&lt;/h3&gt;

&lt;p&gt;To use presets in Mockingbird, follow these steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Create a Preset&lt;/strong&gt;: In the Mockingbird interface, navigate to the "Presets" tab&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv2ef570o6hf0vze0mdby.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv2ef570o6hf0vze0mdby.png" alt="Preset tab" width="800" height="529"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click on &lt;code&gt;New folder&lt;/code&gt;, fill the folder name and filename and then click &lt;code&gt;save&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Then click "Add Preset".&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy6d85t1z0njr6uc6p8y5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy6d85t1z0njr6uc6p8y5.png" alt="Empty preset folder" width="800" height="524"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Give your preset a descriptive name and save.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvw01jz1tkqbjcwh78lzp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvw01jz1tkqbjcwh78lzp.png" alt="Preset details" width="800" height="531"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click on &lt;code&gt;Add route&lt;/code&gt; and then dialog will open and let you select the desired route.&lt;/p&gt;

&lt;p&gt;In the dialog select the server parent and the desired route, then you will have a list of all the responses on this route and you will be able to select the desired response, select the response and hit save.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8ageq17k8mvbl8cyx3m4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8ageq17k8mvbl8cyx3m4.png" alt="Select route and response dialog" width="800" height="528"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the preset details you will see the server block and inside it the route parent and under the parent the selected route, on the route row you will see the selected response name.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1z6s1ypulmqwbaglklek.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1z6s1ypulmqwbaglklek.png" alt="Preset details with route" width="800" height="528"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Repeat this process with all the routes that you want to add to the preset.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbvz3oooe7r0fgkt6fmet.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbvz3oooe7r0fgkt6fmet.png" alt="Preset details with multiple routes" width="800" height="521"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Apply a Preset&lt;/strong&gt;: Once you have created one or more presets, you can apply them to your mock server. Simply select the desired preset from the list, and Mockingbird will update the active responses on all routes within that preset to their specified values.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Test and Debug&lt;/strong&gt;: With the preset applied, you can now test your application against the configured responses, simulating different scenarios without modifying your codebase or waiting for backend changes.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Switch Between Presets&lt;/strong&gt;: To test a different scenario, simply apply another preset. Mockingbird will seamlessly update the active responses, allowing you to quickly switch between test environments.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By leveraging the power of presets in Mockingbird, you can significantly streamline your API testing and debugging workflows, enabling faster iterations, improved collaboration, and ultimately, more efficient development cycles.&lt;/p&gt;

&lt;h2&gt;
  
  
  Upcoming in This Series
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Setting up a GraphQL Mock Server with Mockingbird.&lt;/li&gt;
&lt;li&gt;Managing Multiple Projects and Servers in Mockingbird.&lt;/li&gt;
&lt;li&gt;Dynamically Updating Mockingbird Responses from Automated Tests.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Engage With Us
&lt;/h2&gt;

&lt;p&gt;Follow me on &lt;a href="https://x.com/ozkeisar"&gt;Twitter&lt;/a&gt;, also you can join the discussion or share your experiences on our &lt;a href="https://www.reddit.com/r/mockingbird_dev/"&gt;subreddit&lt;/a&gt; or directly in the comments below. Your feedback helps us improve and guides our future developments.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
      <category>tooling</category>
    </item>
    <item>
      <title>Setting Up Your Mock Server with Mockingbird</title>
      <dc:creator>ozkeisar</dc:creator>
      <pubDate>Thu, 16 May 2024 21:45:01 +0000</pubDate>
      <link>https://dev.to/ozkeisar/setting-up-your-mock-server-with-mockingbird-1b72</link>
      <guid>https://dev.to/ozkeisar/setting-up-your-mock-server-with-mockingbird-1b72</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Welcome to another article of our Mockingbird series! Today, we'll demonstrate how to set up a mock server quickly and effectively using Mockingbird - a tool designed to streamline your application development and testing processes. If you missed the introductory article, I recommend starting there to get a foundational understanding (&lt;a href="https://dev.to/ozkeisar/mockingbird-new-tool-for-your-mock-environments-49j"&gt;Read the first article here&lt;/a&gt;). Let's dive into how you can configure your mock server in minutes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Use a Mock Server?
&lt;/h2&gt;

&lt;p&gt;Before we begin, let's understand why a mock server is beneficial. Mock servers simulate API responses without having to set up a complete backend, allowing developers to test the front end independently, troubleshoot more efficiently, and improve team collaboration on projects. Now, let's set up your mock environment with Mockingbird.&lt;/p&gt;

&lt;h2&gt;
  
  
  Configuring Your Mock Server
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Set Up Your Server&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;After creating your server instance in Mockingbird, click on the server name to open its details.&lt;/li&gt;
&lt;li&gt;Find the Target URL field and enter your real server's base URL. This action will let mockingbird act as a proxy when necessary&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fikp8dbrqheoiweprd9q2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fikp8dbrqheoiweprd9q2.png" alt="Server details screen" width="800" height="529"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;This feature allows you to start working with Mockingbird even if you don't have all the API calls registered locally.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Redirect Your Application
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Click &lt;code&gt;Start Server&lt;/code&gt; to activate your mock server, and then access the server's IP by clicking on the &lt;code&gt;Servers IP&lt;/code&gt; button.&lt;/li&gt;
&lt;li&gt;With the IP address revealed, go to your application's code base and swap out the live server base URL with the Mockingbird server URL.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffonffb8jj7rnmtqmn4kl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffonffb8jj7rnmtqmn4kl.png" alt="Servers ip dialog" width="800" height="528"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Monitoring API Calls
&lt;/h2&gt;

&lt;p&gt;Navigate to the Mockingbird &lt;code&gt;console&lt;/code&gt; by clicking on the console button on the top bar. Here, you'll observe all API requests that your application makes. The console not only captures incoming requests but also displays how each is handled, whether locally or forwarded to the real server.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnyd0i13nj6ssp1qhpgst.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnyd0i13nj6ssp1qhpgst.png" alt="Mockingbird console" width="800" height="545"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Creating Local Routes
&lt;/h2&gt;

&lt;p&gt;If Mockingbird detects an API call that isn't set up locally, you'll have the option to create it right from the console:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Add Parent&lt;/strong&gt;: let you define the parent path for your API.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Add Route&lt;/strong&gt;: Once the parent is established, you can add specific routes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Add Response&lt;/strong&gt;: Finally, define the responses for your routes.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This will let you harvest the calls that exist on your real server and create a mock server in a few minutes!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi9z2ont0jit7pg857ckm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi9z2ont0jit7pg857ckm.png" alt="Example of API calls in mockingbird" width="800" height="529"&gt;&lt;/a&gt;&lt;/p&gt;

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

&lt;p&gt;Mockingbird offers a straightforward and powerful way to develop and test against a mock server, managing API calls efficiently without complex configurations. By following these steps, you can set up your mock server and start testing your application in no time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Spread Your Wings and Fly with Mockingbird!
&lt;/h2&gt;

&lt;p&gt;You can download Mockingbird from GitHub &lt;a href="https://github.com/ozkeisar/mockingbird/releases"&gt;releases&lt;/a&gt; page.&lt;br&gt;
Even if you don't plan on using it right away, consider supporting our project by starring and endorsing it on &lt;a href="https://github.com/ozkeisar/mockingbird"&gt;GitHub&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Upcoming in This Series
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Setting up a GraphQL Mock Server with Mockingbird.&lt;/li&gt;
&lt;li&gt;Exploring the Power of Presets in Mockingbird.&lt;/li&gt;
&lt;li&gt;Managing Multiple Projects and Servers in Mockingbird.&lt;/li&gt;
&lt;li&gt;Dynamically Updating Mockingbird Responses from Automated Tests.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Feel free to ask questions, leave comments, or raise an issue on the &lt;a href="https://github.com/ozkeisar/mockingbird/issues"&gt;GitHub issues page&lt;/a&gt;. We're excited to see how you use Mockingbird to enhance your development workflow!&lt;/p&gt;

&lt;h2&gt;
  
  
  Engage With Us
&lt;/h2&gt;

&lt;p&gt;Join the discussion or share your experiences on our &lt;a href="https://www.reddit.com/r/mockingbird_dev/"&gt;subreddit&lt;/a&gt; or directly in the comments below. Your feedback helps us improve and guides our future developments.&lt;/p&gt;

</description>
      <category>testing</category>
      <category>webdev</category>
      <category>mockingbird</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
