DEV Community

Cover image for Fake Local Server: A Mock server
Sabbir Hossain
Sabbir Hossain

Posted on

Fake Local Server: A Mock server

Introduction

In software engineering world, we have to work with multiple teams and sometimes all teams might not be in same boat. For example, as a front-end or mobile app developer, your view is ready but backend server api is not created yet or returning error or not enough data. Or you are building a microservice that communicate with other microservice. But you are stuck because other part is not ready or throw error. It happens all the time for me.

Here all this issues are related to REST Api response. To solve this kind of issues I have create a git project called Fake Server Local.

How does it work?

Assume you have an e-commerce app and it's REST Api endpoint is https://api.awesome-ecommerce.com

Assume you get list of products by calling https://api.awesome-ecommerce.com/products/list and you are getting an object array that contains id and name.

[
    {id: 1, name: "phone"},
    {id: 2, name: "computer"}, 
    {id: 3, name: "books"}   
]
Enter fullscreen mode Exit fullscreen mode

So your output schema is [{ id: 'number', name: 'text' }].

By using fake server local, you can create mock server that can send fake data based on your schema. All you need is a fake api http://fake-api-endpoint/products/list and schema [{ id: 'id', name: 'text' }] and you will get following fake response

[
    {id: 1, name: "lorem"},
    {id: 2, name: "ipsum"},
    {id: 3, name: "sit"},
]
Enter fullscreen mode Exit fullscreen mode

Setup

  • Open Terminal
  • Clone git@github.com:sabbir-hossain/fake-server-local.git
  • Run cd fake-server-local && npm i
  • Run npm start
  • Now go to http://localhost:9920/dashboard. You should see the following image

Dashboard

Create fake api

  • Create a Project (it might be your server name). Now your api endpoint will be http://localhost:9920/${your-project-title} For example, create a project named (awesome-ecommerce) for your e-commerce project. So your api endpoint will be http://localhost:9920/awesome-ecommerce and you can replace your environment variable in your working project with this url.

  • select Route type from dropdown. Route type can be GET | POST | PUT | PATCH | DELETE. For example, Select GET

  • create route. Like your original route, create a route /product/list for product list and your endpoint will be http://localhost:9920/awesome-ecommerce/product/list

  • create returned schema. It has to be a JSON object. Object key will be expected to the output response's key and value will be output response's type. For example, your /product/list api, your schema might be [{ id: 'number', name: 'text' }]

  • There are no save/update button. Once you move your cursor, value will be updated

  • Now if you call http://localhost:9920/awesome-ecommerce/product/list api from your front-end/app/microservice, you should get following result

[
    {id: 1, name: "lorem"},
    {id: 2, name: "ipsum"},
    {id: 3, name: "sit"},
.............................
..............................
]
Enter fullscreen mode Exit fullscreen mode
  • Your api might also have token. In that case, there is a checkbox called Authenticate, it will check if there are any auth value in header.

That's all. We can create as many projects and routes as we want. All data (projects/routes) is saved in local and it can be sharable. All response data is random text which is generated on api call.

Technologies used: Node.js, Koa.js, neDB, JS. It take zero external configuration. So it also works without internet

Any suggestion, tips, tricks will be highly appriciable

GitHub logo sabbir-hossain / fake-server-local

fake response of REST API

fake-server-local

What is fake-server-local?

fake server local is a local REST api server which return random lorem-ipsum data based on user schema. It might be helpful for Front-end/App developers, who don't have sufficient data (might be REST api is not ready or not enough data in database) to test their projects. All you need just create an api endpoint and output schema. You will get your sufficient data to test your project.

Technologies used

Node.js, Koa.js, neDB, JavaScript, HTML, CSS

Setup

  • Clone this project (must have node.js installed in your machine )
  • open project directory using terminal/Command Prompt
  • run npm install
  • run npm start
  • now go to http://localhost:9920/dashboard
  • create a project
  • your fake api endpoint will be http://localhost:9920/${your-project-title}

Creating Fake Api

Select Route type (GET|POST|PUT|PATCH|DELETE) and type your route name. Now your route will be http://localhost:9920/${your-project-title}/${your-route-name}

Now add output schema. Schema will be json object, which will…

Discussion (0)