Difference between revisions of "Oas tools"

From ETSI Forge
Jump to: navigation, search
(Created page with "__TOC__ = A list of tools to work with OpenAPIs = == swagger2RAML == * A swagger2RAML converter tool: https://github.com/8x8Cloud/swagger2raml == JSON schema validation ==...")
 
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
__TOC__
 
__TOC__
  
= A list of tools to work with OpenAPIs =
+
= Conversions among different formats =
 +
 
 +
== AsciiDoctor ==
 +
 
 +
* Written in Ruby, Gem available
 +
* http://asciidoctor.org/docs/
 +
* Converts AsciiDoc to many formats, including PDF
 +
 
 +
== Swagger2Markup ==
 +
 
 +
* https://github.com/Swagger2Markup/swagger2markup
 +
* Converts openapis into asciidoc or markdown
  
 
== swagger2RAML ==
 
== swagger2RAML ==
  
 
* A swagger2RAML converter tool: https://github.com/8x8Cloud/swagger2raml
 
* A swagger2RAML converter tool: https://github.com/8x8Cloud/swagger2raml
 +
 +
== OpenApis and RAML two way converters ==
 +
 +
* https://github.com/mulesoft/oas-raml-converter
 +
 +
== Bootprint-openapi ==
 +
 +
* https://github.com/bootprint/bootprint-openapi
 +
* https://bootprint.knappi.org/
 +
* Converts a openapi-definition into a static html page
 +
* Nodejs
 +
* https://www.npmjs.com/package/bootprint-swagger
 +
 +
=  Validation =
  
 
== JSON schema validation ==
 
== JSON schema validation ==
Line 12: Line 37:
 
* validating JSON against a JSON schema: An online example can be found at: http://www.jsonschemavalidator.net/. It’s worth noting that the online swagger editor (http://editor.swagger.io) doesn’t validate JSON examples contained within a definition file, since that’s deemed out of scope.
 
* validating JSON against a JSON schema: An online example can be found at: http://www.jsonschemavalidator.net/. It’s worth noting that the online swagger editor (http://editor.swagger.io) doesn’t validate JSON examples contained within a definition file, since that’s deemed out of scope.
 
* https://tools.ietf.org/html/draft-newton-json-content-rules-08
 
* https://tools.ietf.org/html/draft-newton-json-content-rules-08
 +
 +
= API Design tools =
  
 
== Restlet ==  
 
== Restlet ==  
Line 21: Line 48:
 
** Client: Google Chrome extension to run tests against a HTTP API
 
** Client: Google Chrome extension to run tests against a HTTP API
 
** Cloud: Deploy online API (paid service)
 
** Cloud: Deploy online API (paid service)
 +
 +
Splitting and merging the specifications
  
 
== JSON REFS ==
 
== JSON REFS ==
Line 28: Line 57:
 
* Run on NodeJS
 
* Run on NodeJS
 
* https://github.com/whitlockjc/json-refs
 
* https://github.com/whitlockjc/json-refs
* Install  
+
 
* $ npm I –g json-refs
+
Install  
* Usage
+
 
* $ cd folder/with/yaml/tree
+
    $ npm I –g json-refs
* $ json-refs resolve –y anything.split.yaml > anything.merged.yaml  
+
 
 +
Usage
 +
 
 +
    $ cd folder/with/yaml/tree
 +
    $ json-refs resolve –y anything.split.yaml > anything.merged.yaml  
  
 
== Swagger-yaml ==
 
== Swagger-yaml ==
  
 
* https://github.com/idlerun/swagger-yaml
 
* https://github.com/idlerun/swagger-yaml
* an alternate structure for defining a Swagger API which splits the definition into separate files which are combined by a NodeJS script prior to processing by the Swagger Generator.
+
* An alternate structure for defining a Swagger API which splits the definition into separate files which are combined by a NodeJS script prior to processing by the Swagger Generator.
 +
 
 +
= Testing the APIs =
  
 
== Dredd ==
 
== Dredd ==
Line 49: Line 84:
 
* https://www.getpostman.com/
 
* https://www.getpostman.com/
 
* Automatic HTTP API test suites from JSON files
 
* Automatic HTTP API test suites from JSON files
 
== Bootprint-openapi ==
 
 
* https://github.com/bootprint/bootprint-openapi
 
* https://bootprint.knappi.org/
 
* Converts a openapi-definition into a static html page
 
* Nodejs
 
* https://www.npmjs.com/package/bootprint-swagger
 
  
 
==  Swagger-test ==  
 
==  Swagger-test ==  
Line 62: Line 89:
 
* https://www.npmjs.com/package/swagger-test
 
* https://www.npmjs.com/package/swagger-test
 
* Specification-driven REST API testing
 
* Specification-driven REST API testing
 
== OpenApis and RAML ==
 
 
* https://github.com/mulesoft/oas-raml-converter
 
  
 
== Oatts ==  
 
== Oatts ==  
 
* https://github.com/noahdietz/oatts
 
* https://github.com/noahdietz/oatts
 +
*      Generate basic unit test scaffolding for your OpenAPI specification.
 +
 +
= Continuous integration =
  
 
== Validating Swagger Specs with Jenkins ==  
 
== Validating Swagger Specs with Jenkins ==  
Line 76: Line 102:
 
== Detect breakage between versions of API ==  
 
== Detect breakage between versions of API ==  
  
* http://swagger.io/using-swagger-to-detect-breaking-api-changes/
+
* [http://swagger.io/using-swagger-to-detect-breaking-api-changes/ Using Swagger to detect breaking API changes]
* Using Swagger to detect breaking API changes
 
 
* https://github.com/civisanalytics/swagger-diff
 
* https://github.com/civisanalytics/swagger-diff
 
* https://github.com/zallek/swagger-diff
 
* https://github.com/zallek/swagger-diff
Line 86: Line 111:
 
* https://www.getpostman.com/docs/integrating_with_jenkins
 
* https://www.getpostman.com/docs/integrating_with_jenkins
 
* https://vrest.io/
 
* https://vrest.io/
 
== AsciiDoctor ==
 
 
* Written in Ruby, Gem available
 
* http://asciidoctor.org/docs/
 
* Converts AsciiDoc to many formats, including PDF
 
 
== Swagger2Markup ==
 
 
* https://github.com/Swagger2Markup/swagger2markup
 
* Converts openapis into asciidoc or markdown
 

Latest revision as of 17:29, 11 July 2017

Conversions among different formats

AsciiDoctor

Swagger2Markup

swagger2RAML

OpenApis and RAML two way converters

Bootprint-openapi

Validation

JSON schema validation

API Design tools

Restlet

  • (https://restlet.com/)
  • Proprietary tools to manage RestFul APIs and Microservises
  • Tools:
    • Studio: Online tool to graphically design APIs (paid service)
    • Client: Google Chrome extension to run tests against a HTTP API
    • Cloud: Deploy online API (paid service)

Splitting and merging the specifications

JSON REFS

  • “json-refs is a simple library for interacting with JSON References and JSON Pointers. While the main purpose of this library is to provide JSON References features, since JSON References are a combination of Object structure and a JSON Pointer, this library also provides some features for JSON Pointers as well.”
  • It will provide JSON resolution also inside YAML files and can output JSON, it is therefore useful to merge different JSON and YAML files into a larger file
  • Run on NodeJS
  • https://github.com/whitlockjc/json-refs

Install

   $ npm I –g json-refs

Usage

   $ cd folder/with/yaml/tree
   $ json-refs resolve –y anything.split.yaml > anything.merged.yaml 

Swagger-yaml

  • https://github.com/idlerun/swagger-yaml
  • An alternate structure for defining a Swagger API which splits the definition into separate files which are combined by a NodeJS script prior to processing by the Swagger Generator.

Testing the APIs

Dredd

  • http://dredd.readthedocs.io/en/latest/
  • HTTP API Testing Framework, Dredd is a language-agnostic command-line tool for validating API description document against backend implementation of the API, Dredd reads your API description and step by step validates whether your API implementation replies with responses as they are described in the documentation.
  • Supports OpenAPI and API blueprint files

Postman

Swagger-test

Oatts

Continuous integration

Validating Swagger Specs with Jenkins

Detect breakage between versions of API

OpenAPIs and Jenkins