5 releases
0.3.7 | Oct 18, 2024 |
---|---|
0.3.6 | Oct 9, 2024 |
0.3.5 | Sep 25, 2024 |
0.2.2 |
|
0.1.1 |
|
#74 in Testing
410 downloads per month
55KB
1.5K
SLoC
mocks
Get a mock REST APIs with zero coding within seconds.
Install
If you're a macOS Homebrew user, then you can install mocks
from homebrew-tap.
brew install mocks-rs/tap/mocks
If you're a Rust programmer, mocks
can be installed with cargo
.
cargo install mocks
Usage
Run a REST API server
Create a storage.json
.
{
"posts": [
{ "id": "01J7BAKH37HPG116ZRRFKHBDGB", "title": "first post", "views": 100 },
{ "id": "01J7BAKH37GE8B688PT4RC7TP4", "title": "second post", "views": 10 }
],
"comments": [
{ "id": 1, "text": "a comment", "post_id": "01J7BAKH37HPG116ZRRFKHBDGB" },
{ "id": 2, "text": "another comment", "post_id": "01J7BAKH37HPG116ZRRFKHBDGB" }
],
"profile": { "id": "01J7BAQE1GMD78FN3J0FJCNS8T", "name": "mocks" },
"friends": []
}
Pass it to mocks
CLI.
mocks storage.json
mocks -H 127.0.0.1 -p 8080 storage.json
Get a REST API with curl
.
% curl http://localhost:3000/posts/01J7BAKH37HPG116ZRRFKHBDGB
{"id":"01J7BAKH37HPG116ZRRFKHBDGB","title":"first post","views":100}
Routes
Based on the example storage.json, you'll get the following routes:
GET /posts
GET /posts/:id
POST /posts
PUT /posts/:id
PATCH /posts/:id
DELETE /posts/:id
# Same for comments and friends
GET /profile
PUT /profile
PATCH /profile
GET /_hc
# Health check endpoint returns a 204 response.
Options
Run mocks --help
for a list of options.
Developer mode
To help with debugging, you can enable a special feature that saves mock data to a separate file.
To do this, simply set the environment variable called MOCKS_DEBUG_OVERWRITTEN_FILE
.
MOCKS_DEBUG_OVERWRITTEN_FILE=storage.debug.json cargo run -- storage.json
We recommend specifying the filename as *.debug.json
. For more details, please check .gitignore file.
LICENSE
This project is licensed under the MIT license.
Dependencies
~6–14MB
~160K SLoC