Apiary CLI Client
Apiary CLI client, apiary
.
Description
The Apiary CLI Client gem is a command line tool for developing and previewing API Blueprint documents locally. It can also be used for pushing updated documents to and fetching existing documents from Apiary.
Please see the apiary help
command and the full documentation for an in-depth look in how to use this tool.
For instructions on making your own changes, see Hacking Apiary CLI Client, below.
Installation
Install as a Ruby gem
gem install apiaryio
Using Docker - alternative if you don't install ruby or installation not work for you
Download image:
docker pull apiaryio/client
Run instead apiary
just docker run apiaryio/client
Build from source code:
docker build -t "apiaryio/client" .
Setup Apiary credentials
Required only for publish and fetch commands.
- Make sure you are a registered user of Apiary.
- Retrieve API key (token) on this page.
- Export it as an environment variable:
export APIARY_API_KEY=<your_token>
Command-line Usage
$ apiary help
Commands:
apiary archive # Archive All Your API Description Documents from apiary.io to local files named following [api-project-subdomain.apib] pattern.
apiary fetch --api-name=API_NAME # Fetch API Description Document from API_NAME.docs.apiary.io
apiary help [COMMAND] # Describe available commands or one specific command
apiary preview # Show API documentation in browser or write it to file
apiary publish --api-name=API_NAME # Publish API Description Document on API_NAME.docs.apiary.io (API Description must exist on apiary.io)
apiary styleguide # Check API Description Document against styleguide rules (Apiary.io pro plan is required - https://apiary.io/plans )
apiary version # Show version
Details
archive
$ apiary help archive
Usage:
apiary archive
Options:
[--exclude-team-projects], [--no-exclude-team-projects] # Skip team projects
Archive All Your API Description Documents from apiary.io to local files named following [api-project-subdomain.apib] pattern.
fetch
$ apiary help fetch
Usage:
apiary fetch --api-name=API_NAME
Options:
--api-name=API_NAME
[--output=FILE] # Write API Description Document into specified file
Fetch API Description Document from API_NAME.docs.apiary.io
preview
$ apiary help preview
Usage:
apiary preview
Options:
[--browser=BROWSER] # Show API documentation in specified browser (full command is needed - e.g. `--browser='open -a safari'` in case of osx)
[--output=FILE] # Write generated HTML into specified file
[--path=PATH] # Specify path to API Description Document. When given a directory, it will look for `apiary.apib` and `swagger.yaml` file
[--json], [--no-json] # Specify that Swagger API Description Document is in json format. Document will be converted to yaml before processing
[--server], [--no-server] # Start standalone web server on port 8080
[--port=PORT] # Set port for --server option
[--host=HOST] # Set host for --server option
[--watch], [--no-watch] # Reload API documentation when API Description Document has changed
Show API documentation in browser or write it to file
publish
$ apiary help publish
Usage:
apiary publish --api-name=API_NAME
Options:
[--message=COMMIT_MESSAGE] # Publish with custom commit message
[--path=PATH] # Specify path to API Description Document. When given a directory, it will look for `apiary.apib` and `swagger.yaml` file
[--json], [--no-json] # Specify that Swagger API Description Document is in json format. Document will be converted to yaml before processing
[--push], [--no-push] # Push API Description to the GitHub when API Project is associated with GitHub repository in Apiary
# Default: true
--api-name=API_NAME
Publish API Description Document on API_NAME.docs.apiary.io (API Description must exist on apiary.io)
styleguide
$ apiary help styleguide
Usage:
apiary styleguide
Options:
[--fetch], [--no-fetch] # Fetch styleguide rules and functions from apiary.io
[--push], [--no-push] # Push styleguide rules and functions to apiary.io
[--add=ADD] # Path to API Description Document. When given a directory, it will look for `apiary.apib` and `swagger.yaml` file
[--functions=FUNCTIONS] # Path to to the file with functions definitions
[--rules=RULES] # Path to to the file with rules definitions - `functions.js` and `rules.json` are loaded if not specified
[--full-report], [--no-full-report] # Get passed assertions ass well. Only failed assertions are included to the result by default
[--json], [--no-json] # Outputs all in json
Check API Description Document against styleguide rules (Apiary.io pro plan is required - https://apiary.io/plans )
version
$ apiary help version
Usage:
apiary version
Options:
[--{:aliases=>"-v"}={:ALIASES=>"-V"}]
Show version
Hacking Apiary CLI Client
Build
-
If needed, install bundler:
$ gem install bundler
-
Clone the repo:
$ git clone git@github.com:apiaryio/apiary-client.git $ cd apiary-client
-
Install dependencies:
$ bundle install
Test
Inside the apiary-client
repository directory run:
$ bundle exec rspec spec
$ bundle exec cucumber
Release
Use bundle install
to install your changes locally, for manual and ad-hock testing.
Only gem owners gem owner apiaryio
can publish new gem into RubyGems.
-
bump version in
lib/apiary/version.rb
-
update
CHANGELOG.md
-
prepare Github Release with text in
CHANGELOG
-
make gem release:
$ git tag $VERSION $ git push --tags
- if release is stuck you need use
$ rake release --trace
to get OTP prompt.
License
Copyright 2012-17 (c) Apiary Ltd.
Released under MIT license. See LICENSE file for further details.