jhop
🏎Create fake REST API in one sec.
Install
~ $ go get github.com/cooldrip/jhop/cmd/jhop
CLI Example
Create a file recipes.json
:
{
"recipes": [
{ "id": 1, "prep_time": "1h", "difficulty": "hard" },
{ "id": 2, "prep_time": "15m", "difficulty": "easy" }
]
}
Passing the JSON file to jhop
:
~ $ jhop recipes.json
Now you can go to localhost:6000/recipes
and get the collection:
{
"recipes": [
{ "id": 1, "prep_time": "1h", "difficulty": "hard" },
{ "id": 2, "prep_time": "15m", "difficulty": "easy" }
]
}
or you can just get a single recipe localhost:6000/recipes/1
:
{ "id": 1, "prep_time": "1h", "difficulty": "hard" }
API example
f, err := os.Open("recipes.json")
if err != nil {
log.Fatalf("file opening failed: %s", err)
}
h, err := jhop.NewHandler(f)
if err != nil {
log.Fatalf("handler initialization failed: %s", err)
}
s := httptest.NewServer(h)
defer s.Close()
resp, err := http.Get(fmt.Sprintf("%s/recipes/1", s.URL))
if err != nil {
log.Fatalf("request to test server failed: %s", err)
}
io.Copy(os.Stdout, resp.Body) // {"difficulty":"hard","id":1,"prep_time":"1h"}
CLI usage
NAME:
jhop - Create fake REST API in one sec.
USAGE:
jhop [global options] command [command options] [arguments...]
VERSION:
0.0.0
COMMANDS:
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--port value Set port (default: "6000")
--host value Set host (default: "localhost")
--help, -h show help
--version, -v print the version
TODO
- Single resource
- Custom routes
- Middleware