parser

module
v0.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 16, 2019 License: Apache-2.0

README

AsyncAPI Parser

Build Status Build Status Go Report Card

Overview

The AsyncAPI Parser validates AsyncAPI documents according to dedicated schemas. The supported schemas are:

  • AsyncAPI schema
  • OpenAPI schema
  • JSON schema If you use the parser as a package, you can also register external schemas. For example, you can write your own schema.

Documents provided for the AsyncAPI Parser can be in the .yaml or .json formats. If a document is invalid, the parser provides a message listing all errors. If a document is valid, the parser provides dereferenced output. During the dereference process the AsyncAPI parser substitutes a reference with a full definition. The dereferenced output is always in the .json format.

Prerequisites

Installation

To install the AsyncAPI Parser package, run:

go get github.com/asyncapi/parser/...

Usage

You can use the AsyncAPI Parser in two ways:

  • Before you use the AsyncAPI Parser in the terminal, build the application. Run:

    git clone https://github.com/asyncapi/parser.git
    cd ./parser
    go build -o=asyncapi-parser ./cmd/api-parser/main.go
    

    To use the AsyncAPI Parser run the following command:

    asyncapi-parser <document_path>
    

    where document_path is a mandatory argument that is either a URL or a file path to an AsyncAPI document.

  • You can also use the AsyncAPI Parser without building the application, using Golang. Run: bash go run ./cmd/api-parser/main.go <document_path> where document_path is a mandatory argument that is either a URL or a file path to an AsyncAPI document. Examples See the following examples of the AsyncAPI Parser usage in the terminal:

  • Validation of the gitter-streaming.yaml valid file:

    asyncapi-parser https://raw.githubusercontent.com/asyncapi/asyncapi/master/examples/next/gitter-streaming.yml
    
  • Validation of the oneof.yml invalid file:

    go run ./cmd/api-parser/main.go https://raw.githubusercontent.com/asyncapi/asyncapi/master/examples/1.1.0/oneof.yml
    

    Output:

    (root): id is required
    (root): channels is required
    (root): Additional property topics is not allowed
    asyncapi: asyncapi must be one of the following: "2.0.0"
    

Contribution

If you have a feature request, add it as an issue or propose changes in a pull request (PR). If you create a feature request, use the dedicated Feature request issue template. When you create a PR, follow the contributing rules described in the CONTRIBUTING.md document.

Roadmap

  • avro schema support
  • extensions support
  • json-schema $id property support

Credits

  • Fran Mendez
  • Raisel Melian
  • Ruben Hervas
  • Marcin Witalis from Kyma

Directories

Path Synopsis
cmd
internal
cli
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL