yapi
yapi
is a very simple API client (a la Postman) which uses a yaml file for configuration.
Start with a yapi.yml file:
---
root: http://localhost:3000
session: my_project
headers:
Content-Type: application/json
Accept: application/json
output:
headers: true
users.index:
path: /users
params:
page: 2
per: 100
users.show:
path: /users/1
users.create:
path: /users
method: POST
body: |
{
"name": "Test User",
"email": "testuser@example.com",
}
Run yapi
for an interactive prompt:
$ yapi routes.yapi.yml
or specify a line number and the nearest request specification will be run:
$ yapi routes.yapi.yml:20
Installation
gem install yapi-cli
Details
Cookies will be used if a session
name is provided in the project settings.
Available Project Settings
root
: The root path for requests in this project.
headers
: Headers to apply to every request. Requests can overwrite these when needed.
session
: A name to store cookies for. Session cookies are saved to ~/.cache/yapi/session_name.jar
output
: Toggles whether to print various items in the output. Currently only headers: true|false
is supported.
Available Request Options
path
: Path to append to root
path defined in project settings.
method
: HTTP method type.
headers
: Define additional headers here, they will be merged with any headers defined on the project level.
params
, body
, json
, form
: See http.rb documentation
Development
After checking out the repo, run bin/setup
to install dependencies. Then, run rake spec
to run the tests. You can also run bin/console
for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install
. To release a new version, update the version number in version.rb
, and then run bundle exec rake release
, which will create a git tag for the version, push git commits and tags, and push the .gem
file to rubygems.org.
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/dbridges/yapi.
License
The gem is available as open source under the terms of the MIT License.