Open In App

How to create mock servers using Postman

Last Updated : 14 Mar, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

Postman is a comprehensive API platform used by developers; this platform provides a set of tools that support API design, testing, documentation, mocking, and API Monitoring. It also simplifies each step of the API lifecycle and streamlines collaboration, enabling developers to create and use APIs more efficiently. Postman’s API client is the foundational tool of Postman, and it enables developers to easily explore, debug, and test APIs while also enabling them to define complex API requests for HTTP, REST, SOAP, GraphQL, and WebSockets.

Prerequisites

What is a mock-server:

Mock server serves as a simulated or pseudo server that mimics authentic server behavior. They return controlled responses to requests, letting you design and create JSON API responses without writing a single line of code.

Let us assume that you are working as front-end developer in a large team that is tasked with building a web application that relies on a back-end API to fetch data. However, the back-end development is still in progress, and the API endpoints are not available yet. To avoid delays in front-end development, you decide to use a mock server in Postman.

How to create a mock servers using Postman?

Step 1: Open the postman application on your computer then click on the mock servers tab on the left side navigation bar.

WhatsApp-Image-2023-12-17-at-50529-PM

Step 2: To create a new mock server, click on the create mock server or the plus symbol beside the collections tab.

WhatsApp-Image-2023-12-17-at-51604-PM

Step 3: Create mock request

To create a sample mock request, you’ll need to understand the following concept:

  • Request Method: This dropwown allows you to select our prefared http methods. example: GET, POST, PUT, DELETE
  • Request URL: This is used to specify the exact route in our mock endpoints.
  • Response Code: http response codes ranging from 100 to 599 can be used depending on our desired response
  • Response Body: This input field is used to pass a sample json response

WhatsApp-Image-2023-12-18-at-125032-AM

Now that you have understood the above concept, We are going to modify the input fields. for the purpose of this article, we will create a mock api to get the list of users in our application.

Start by setting the request url input field to users. Next copy JSON response below and paste in the response body. Then click next to continue.

Javascript
[{
    "id" : 1,
    "name" : "Leanne Graham",
    "username" : "Bret",
    "email" : "Sincere@april.biz",
    "address" : {
        "street" : "Kulas Light",
        "suite" : "Apt. 556",
        "city" : "Gwenborough",
        "zipcode" : "92998-3874",
        "geo" : { "lat" : "-37.3159", "lng" : "81.1496" }
    },
    "phone" : "1-770-736-8031 x56442",
    "website" : "hildegard.org",
    "company" : {
        "name" : "Romaguera-Crona",
        "catchPhrase" :
            "Multi-layered client-server neural-net",
        "bs" : "harness real-time e-markets"
    }
},
 {
     "id" : 2,
     "name" : "Ervin Howell",
     "username" : "Antonette",
     "email" : "Shanna@melissa.tv",
     "address" : {
         "street" : "Victor Plains",
         "suite" : "Suite 879",
         "city" : "Wisokyburgh",
         "zipcode" : "90566-7771",
         "geo" : { "lat" : "-43.9509", "lng" : "-34.4618" }
     },
     "phone" : "010-692-6593 x09125",
     "website" : "anastasia.net",
     "company" : {
         "name" : "Deckow-Crist",
         "catchPhrase" : "Proactive didactic contingency",
         "bs" : "synergize scalable supply-chains"
     }
 },
 {
     "id" : 3,
     "name" : "Clementine Bauch",
     "username" : "Samantha",
     "email" : "Nathan@yesenia.net",
     "address" : {
         "street" : "Douglas Extension",
         "suite" : "Suite 847",
         "city" : "McKenziehaven",
         "zipcode" : "59590-4157",
         "geo" : { "lat" : "-68.6102", "lng" : "-47.0653" }
     },
     "phone" : "1-463-123-4447",
     "website" : "ramiro.info",
     "company" : {
         "name" : "Romaguera-Jacobson",
         "catchPhrase" :
             "Face to face bifurcated interface",
         "bs" : "e-enable strategic applications"
     }
 },
 {
     "id" : 4,
     "name" : "Patricia Lebsack",
     "username" : "Karianne",
     "email" : "Julianne.OConner@kory.org",
     "address" : {
         "street" : "Hoeger Mall",
         "suite" : "Apt. 692",
         "city" : "South Elvis",
         "zipcode" : "53919-4257",
         "geo" : { "lat" : "29.4572", "lng" : "-164.2990" }
     },
     "phone" : "493-170-9623 x156",
     "website" : "kale.biz",
     "company" : {
         "name" : "Robel-Corkery",
         "catchPhrase" :
             "Multi-tiered zero tolerance productivity",
         "bs" : "transition cutting-edge web services"
     }
 },
 {
     "id" : 5,
     "name" : "Chelsey Dietrich",
     "username" : "Kamren",
     "email" : "Lucio_Hettinger@annie.ca",
     "address" : {
         "street" : "Skiles Walks",
         "suite" : "Suite 351",
         "city" : "Roscoeview",
         "zipcode" : "33263",
         "geo" : { "lat" : "-31.8129", "lng" : "62.5342" }
     },
     "phone" : "(254)954-1289",
     "website" : "demarco.info",
     "company" : {
         "name" : "Keebler LLC",
         "catchPhrase" :
             "User-centric fault-tolerant solution",
         "bs" : "revolutionize end-to-end systems"
     }
 },
 {
     "id" : 6,
     "name" : "Mrs. Dennis Schulist",
     "username" : "Leopoldo_Corkery",
     "email" : "Karley_Dach@jasper.info",
     "address" : {
         "street" : "Norberto Crossing",
         "suite" : "Apt. 950",
         "city" : "South Christy",
         "zipcode" : "23505-1337",
         "geo" : { "lat" : "-71.4197", "lng" : "71.7478" }
     },
     "phone" : "1-477-935-8478 x6430",
     "website" : "ola.org",
     "company" : {
         "name" : "Considine-Lockman",
         "catchPhrase" :
             "Synchronised bottom-line interface",
         "bs" : "e-enable innovative applications"
     }
 },
 {
     "id" : 7,
     "name" : "Kurtis Weissnat",
     "username" : "Elwyn.Skiles",
     "email" : "Telly.Hoeger@billy.biz",
     "address" : {
         "street" : "Rex Trail",
         "suite" : "Suite 280",
         "city" : "Howemouth",
         "zipcode" : "58804-1099",
         "geo" : { "lat" : "24.8918", "lng" : "21.8984" }
     },
     "phone" : "210.067.6132",
     "website" : "elvis.io",
     "company" : {
         "name" : "Johns Group",
         "catchPhrase" :
             "Configurable multimedia task-force",
         "bs" : "generate enterprise e-tailers"
     }
 },
 {
     "id" : 8,
     "name" : "Nicholas Runolfsdottir V",
     "username" : "Maxime_Nienow",
     "email" : "Sherwood@rosamond.me",
     "address" : {
         "street" : "Ellsworth Summit",
         "suite" : "Suite 729",
         "city" : "Aliyaview",
         "zipcode" : "45169",
         "geo" : { "lat" : "-14.3990", "lng" : "-120.7677" }
     },
     "phone" : "586.493.6943 x140",
     "website" : "jacynthe.com",
     "company" : {
         "name" : "Abernathy Group",
         "catchPhrase" : "Implemented secondary concept",
         "bs" : "e-enable extensible e-tailers"
     }
 },
 {
     "id" : 9,
     "name" : "Glenna Reichert",
     "username" : "Delphine",
     "email" : "Chaim_McDermott@dana.io",
     "address" : {
         "street" : "Dayna Park",
         "suite" : "Suite 449",
         "city" : "Bartholomebury",
         "zipcode" : "76495-3109",
         "geo" : { "lat" : "24.6463", "lng" : "-168.8889" }
     },
     "phone" : "(775)976-6794 x41206",
     "website" : "conrad.com",
     "company" : {
         "name" : "Yost and Sons",
         "catchPhrase" :
             "Switchable contextually-based project",
         "bs" : "aggregate real-time technologies"
     }
 },
 {
     "id" : 10,
     "name" : "Clementina DuBuque",
     "username" : "Moriah.Stanton",
     "email" : "Rey.Padberg@karina.biz",
     "address" : {
         "street" : "Kattie Turnpike",
         "suite" : "Suite 198",
         "city" : "Lebsackbury",
         "zipcode" : "31428-2261",
         "geo" : { "lat" : "-38.2386", "lng" : "57.2232" }
     },
     "phone" : "024-648-3804",
     "website" : "ambrose.net",
     "company" : {
         "name" : "Hoeger LLC",
         "catchPhrase" :
             "Centralized empowering task-force",
         "bs" : "target end-to-end models"
     }
 }]

Step 4: Mock server configuration

Within the configuration tab, we are going to set the mock server name to mock users api. You can set it to your preffared name. next, select the Save the mock server URL as an environment variable checkbox. now that you have completed the configuration, click on the create mock server button on your bottom right. before proceeding to the next step, let us understand some important concept in the configuration.

  • Environment: Environments help manage variables like URLs or tokens.
  • Make mock server private: is used when you want to make your mock api secure by adding authentication
  • Simulate fixed network delay: this feature for testing how your application behaves under different network conditions. It allows you to identify potential issues related to network latency and ensure that your application handles delays appropriately.

WhatsApp-Image-2023-12-18-at-21132-AM

Step 5: Test mock request

Navigate to the collections tab on the left side of the navigation bar, then click on the mock server api collection which we created and select users.

WhatsApp-Image-2023-12-18-at-23455-AM

Next, click on the send button on the top right hand of your postman to see sample JSON request.
WhatsApp-Image-2023-12-18-at-24204-AM



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads