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.