Skip to content

Latest commit

 

History

History
191 lines (157 loc) · 4.59 KB

README.md

File metadata and controls

191 lines (157 loc) · 4.59 KB

Welcome to Api-mocker 👋

Version Documentation Maintenance License: MIT

Simple HTTP Server to Mock JSON Api Response. It will simulate API responses with Minimum work and Configuration.

Prerequisites

  • npm >=5.5.0
  • node >=9.3.0

Installation

npm i @tejasvp25/api-mocker

Sample Config - JSON

#   Global Headers will be set to Every endpoint response ( Can be overidden by Local Header )
#   "method" defines the type of Request
#   "status_code" defines the Status Code returned
#   "response" defines the Response to specific endpoint

{
  "globalHeaders": { "Content-Size": 100 },
  "endpoint": [
    {
      "endpoint": "test3", //   => http://localhost:8080/test3
      "method": "get",
      "localHeaders": {
        "Content-Type": "application/json"
      },

      "status_code": 200,
      "response": { "name": "ABC", "age": 19 }
    }
  ],

  "groups": [
    {
      "name": "api",
      "endpoints": [
        {
          "method": "get",
          "endpoint": "test1", //   => http://localhost:8080/api/test1
          "localHeaders": { "Content-Type": "text/plain" },
          "status_code": 200,
          "response": "asdasd"
        },
        {
          "method": "post",
          "endpoint": "test",
          "status_code": 500
        }
      ]
    },
    {
      "name": "api1",
      "endpoints": [
        {
          "method": "get",
          "endpoint": "test1", //   => http://localhost:8080/api1/test1
          "status_code": 200
        },
        {
          "method": "delete",
          "endpoint": "test",
          "status_code": 500
        }
      ]
    },
    {
      "name": "abc",
      "endpoints": [
        {
          "method": "get",
          "endpoint": "xyz", //   => http://localhost:8080/abc/xyz
          "status_code": 200
        },
        {
          "method": "post",
          "endpoint": "test", //   => http://localhost:8080/abc/test
          "status_code": 500
        }
      ]
    }
  ]
}

Sample Config - YAML

#   Global Headers will be set to Every endpoint response ( Can be overidden by Local Header )
#   "method" defines the type of Request
#   "status_code" defines the Status Code returned
#   "response" defines the Response to specific endpoint

---
globalHeaders:
  Content-Size: 100
endpoint:
- endpoint: "/api/test3"
  method: get
  localHeaders:
    Content-Type: application/json
  status_code: 200
  response:
    name: ABC
    age: 19
groups:
- name: api
  endpoints:
  - method: get
    endpoint: test1
    localHeaders:
      Content-Type: text/plain
    status_code: 200
    response: asdasd
  - method: post
    endpoint: test
    status_code: 500
- name: api1
  endpoints:
  - method: get
    endpoint: test1
    status_code: 200
  - method: get
    endpoint: test
    status_code: 500


Usage

npm run start -- --port=2000 --config=example.json --configType=json

OR

node index.js --port=2000 --config=example.json --configType=json
  • --port denotes the Port Number to Run Server
  • --config denotes the filename of Config
  • --configType (Optional) Use JSON/YAML config type (Default to json)

Author

👤 Tejasvp25

🤝 Contributing

Contributions, issues and feature requests are welcome!
Feel free to check issues page. You can also take a look at the contributing guide.

Show your support

Give a ⭐️ if this project helped you!

TODO ✓

  • Add Support for XML

📝 License

Copyright © 2023 Tejasvp25.
This project is MIT licensed.