/raml-dotnet-parser

Community-maintained .NET parser for RAML

Primary LanguageC#Apache License 2.0Apache-2.0

RAML Parser for .NET

Build status

A RAML Parser implementation in .NET for all CLR languages. The parser is implemented as a strongly-typed wrapper around the JavaScript parser, leveraging Edge.js as a Node.js host. Reuse of the JavaScript parser provides a robust and high-performance parser with a simple and natural .NET object model.

The preferred way of consuming the RAML parser in your .NET application is to include it in your project directly from nuget:

    Install-Package RAML.Parser

Usage (C#)

Import the Raml.Parser namespace, and then use the RamlParser object to build an in-memory model of a RAML definition:

    using RAML.Parser;
    
    async Task ParseRamlFile()
    {
        // load a RAML file
        var parser = new AmfParser();
        var model = await parser.Load("my.raml");

        // print the number of endpoints that this RAML definition contains
        Console.WriteLine(model.WebApi.EndPoints.Count());
        // print the number of types this RAML definition contains
        Console.WriteLine(model.Shapes.Count());

        // OAS 2.0 also supported
        model = await parser.Load("my.json");
    }

The Load methods of the parser return a RamlDocument instance, from which all properties of the RAML definition may be discovered.