NAME
    Swagger2 - Swagger RESTful API Documentation

VERSION
    0.09

DESCRIPTION
    THIS MODULE IS EXPERIMENTAL! ANY CHANGES CAN HAPPEN!

    Swagger2 is a module for generating, parsing and transforming swagger
    <http://swagger.io/> API documentation. It has support for reading
    swagger specification in JSON notation and it can also read YAML files,
    if a "YAML parser" is installed.

    This distribution comes with a Mojolicious plugin,
    Mojolicious::Plugin::Swagger2, which can set up routes and perform input
    and output validation.

RECOMMENDED MODULES
    *   YAML parser

        A YAML parser is required if you want to read/write spec written in
        the YAML format. Supported modules are YAML::XS, YAML::Syck, YAML
        and YAML::Tiny.

SYNOPSIS
      use Swagger2;
      my $swagger = Swagger2->new("file:///path/to/api-spec.yaml");

      # Access the raw specification values
      print $swagger->tree->get("/swagger");

      # Returns the specification as a POD document
      print $swagger->pod->to_string;

ATTRIBUTES
  base_url
      $mojo_url = $self->base_url;

    Mojo::URL object that holds the location to the API endpoint. Note: This
    might also just be a dummy URL to <http://example.com/>.

  specification
      $pointer = $self->specification;
      $self = $self->specification(Mojo::JSON::Pointer->new({}));

    Holds a Mojo::JSON::Pointer object containing the Swagger 2.0 schema
    <https://github.com/swagger-api/swagger-spec>.

  tree
      $pointer = $self->tree;
      $self = $self->tree(Mojo::JSON::Pointer->new({}));

    Holds a Mojo::JSON::Pointer object containing your API specification.

  ua
      $ua = $self->ua;
      $self = $self->ua(Mojo::UserAgent->new);

    A Mojo::UserAgent used to fetch remote documentation.

  url
      $mojo_url = $self->url;

    Mojo::URL object that holds the location to the documentation file. This
    can be both a location on disk or an URL to a server. A remote resource
    will be fetched using Mojo::UserAgent.

METHODS
  expand
      $swagger = $self->expand;

    This method returns a new "Swagger2" object, where all the references
    <https://tools.ietf.org/html/draft-zyp-json-schema-03#section-5.28> are
    resolved.

  load
      $self = $self->load;
      $self = $self->load($url);

    Used to load the content from $url or "url". This method will try to
    guess the content type (JSON or YAML) by looking at the filename, URL
    path or "Content-Type" header reported by a web server.

  new
      $self = Swagger2->new($url);
      $self = Swagger2->new(%attributes);
      $self = Swagger2->new(\%attributes);

    Object constructor.

  pod
      $pod_object = $self->pod;

    Returns a Swagger2::POD object.

  to_string
      $json = $self->to_string;
      $json = $self->to_string("json");
      $yaml = $self->to_string("yaml");

    This method can transform this object into Swagger spec.

  validate
      @errors = $self->validate;

    Will validate this object against the "specification", and return a list
    with all the errors found. See also "validate" in
    Swagger2::SchemaValidator.

COPYRIGHT AND LICENSE
    Copyright (C) 2014, Jan Henning Thorsen

    This program is free software, you can redistribute it and/or modify it
    under the terms of the Artistic License version 2.0.

AUTHOR
    Jan Henning Thorsen - "jhthorsen@cpan.org"

