Skip to content

Latest commit

 

History

History
68 lines (48 loc) · 2.06 KB

README.md

File metadata and controls

68 lines (48 loc) · 2.06 KB

mock

Go to the User Guide

Go Reference Go Report Card

mock is an API utility - it lets you:

  • define API routes easily through API configuration files or through command-line parameters.
  • use shells scripts as response handlers. Or any other type of program can act as response handlers.
  • test your API - make assertions on whether an endpoint was requested.

Getting started

Let's look at a simple example - an API with 2 routes GET say_hi/{name} and GET what_time_is_it:

$ mock serve --port 3000 \
  --route 'say_hi/{name}' \
  --method GET \
  --response 'Hello, world! My name is ${name}.' \
  --route "what_time_is_it" \
  --method GET \
  --exec 'printf "Now it is %s" $(date +"%H:%M") | mock write'

Now try requesting your mock API at port 3000 (can also be from your browser!):

$ curl localhost:3000/say_hi/john_doe

Hello, world! My name is john_doe.

$ curl localhost:3000/what_time_is_it

Now it is 22:00

mock lets you also extend other APIs (or any HTTP service, for that matter.) Suppose you want to add a new route to an existing API running at example.com:

$ mock serve --port 3000 \
  --base example.com \
  --route 'some_new_route' \
  --method GET \
  --exec 'printf "Hello, world!" | mock write' 

With the --base example.com option above, your mock API will act as proxy to that other website, and extend it with an extra route GET /some_new_route. Look up "Base APIs" in the docs for more details.

There are many other ways of further customising your APIs with mock. Read further through the guide to learn.

Installing

mock is distributed as a single-file executable. Check the releases page and download the latest tarball.

License

mock is licensed under MIT. For more information check the LICENSE file.