Help language development. Donate to The Perl Foundation

OpenAPI::Model cpan:JNTHN last updated on 2019-07-10
OpenAPI::Model [![Build Status](](

OpenAPI::Model - work with OpenAPI documents in terms of a set of Perl 6 objects.


    # Just fully qualified names available (OpenAPI::Model::Operation)
    use OpenAPI::Model;
    # Or get short names for model objects imported (Operation)
    use OpenAPI::Model :elements;

    # Load an existing document from YAML (returns OpenAPI::Model::OpenAPI):
    my $api = OpenAPI::Model.from-yaml($yaml-doc);
    # Or from JSON:
    my $api = OpenAPI::Model.from-json($json-doc);

    # Dig into the document (automatically resolves references within the
    # document):
    for $api.paths.kv -> $path, $object {
        say "At $path you can:";
        for <get post put delete> -> $method {
            with $object."$method"() {
                say " - do a $method.uc() request";

    # References to external schemas are also possible (we won't go trying
    # to download anything for you, and expect an `OpenAPI::Model::OpenAPI`
    # instance for each one). These are used to resolve external references.
    my %external = 'http://some.organization/schema/foobar' =>
    my $api = OpenAPI::Model.from-yaml($yaml-doc, :%external);


OpenAPI::Model is a library that provides Perl 6 object layers upon OpenAPI documents.


Alexander Kiryuhin <[email protected]>


Copyright 2018 Edument Central Europe sro.

This library is free software; you can redistribute it and/or modify it under the Artistic License 2.0.