Skip to content

Latest commit

 

History

History
51 lines (44 loc) · 2.04 KB

User_guide.md

File metadata and controls

51 lines (44 loc) · 2.04 KB

CompaREST User Guide

Running the Tool

The tool accepts two OpenAPI 3.0.0 schema files in either JSON or YAML format. One is assumed to be the client version of the schema, and the other is the server version.

The tool will look for changes between the schemas and detect whether they are breaking or not -- that is, if they prevent interoperability between the client and the server.

Running:

comparest -c client.json -s server.json

will output a markdown report of the changes to the standard output.

Compatibility status can be signaled via the exit code using --signal-exit-code. In case no report is needed, output can be suppressed with --silent. For example:

comparest -c client.json -s server.json --signal-exit-code --silent
echo $?

If there were changes that the tool determined to be breaking, the exit code will be 1. If there were some changes the tool couldn't understand, the exit code will be 2. Otherwise if there were no breaking changes, the exit code will be 0.

Controlling the Report

By default the report includes breaking changes, as well as non-breaking: changes that would be considered breaking in the opposite direction. To only include breaking changes in the report use --only-breaking. The --all option restores the default behavior.

The report can be formatted in a variety of ways supported by Pandoc. The -o option causes the report to be written to a file. The format of the file is determined from the extension. The supported extensions include:

  • .md for markdown
  • .html for an HTML snippet
  • .rst for restructured text
  • no extension for a self-contained HTML document with styles

By default the report is split up into parts relating to different paths, requests, responses, etc, using headers of various levels. Alternatively, the report can use indended block-quotes to visualize the tree structure of the report. The header style is enabled with --header-style, and the block-quote style is enabled with --folding-block-quotes-style.