DropWizard RAML View

A bundle for adding an human-readable view of a service's RAML specification

License

License

Categories

Categories

DropWizard Container Microservices Net
GroupId

GroupId

net.ozwolf
ArtifactId

ArtifactId

dropwizard-raml-view
Last Version

Last Version

1.2.1.0
Release Date

Release Date

Type

Type

jar
Description

Description

DropWizard RAML View
A bundle for adding an human-readable view of a service's RAML specification
Project URL

Project URL

https://github.com/ozwolf-software/dropwizard-raml-view
Source Code Management

Source Code Management

https://github.com/ozwolf-software/dropwizard-raml-view

Download dropwizard-raml-view

How to add to project

<!-- https://jarcasting.com/artifacts/net.ozwolf/dropwizard-raml-view/ -->
<dependency>
    <groupId>net.ozwolf</groupId>
    <artifactId>dropwizard-raml-view</artifactId>
    <version>1.2.1.0</version>
</dependency>
// https://jarcasting.com/artifacts/net.ozwolf/dropwizard-raml-view/
implementation 'net.ozwolf:dropwizard-raml-view:1.2.1.0'
// https://jarcasting.com/artifacts/net.ozwolf/dropwizard-raml-view/
implementation ("net.ozwolf:dropwizard-raml-view:1.2.1.0")
'net.ozwolf:dropwizard-raml-view:jar:1.2.1.0'
<dependency org="net.ozwolf" name="dropwizard-raml-view" rev="1.2.1.0">
  <artifact name="dropwizard-raml-view" type="jar" />
</dependency>
@Grapes(
@Grab(group='net.ozwolf', module='dropwizard-raml-view', version='1.2.1.0')
)
libraryDependencies += "net.ozwolf" % "dropwizard-raml-view" % "1.2.1.0"
[net.ozwolf/dropwizard-raml-view "1.2.1.0"]

Dependencies

compile (7)

Group / Artifact Type Version
io.dropwizard : dropwizard-views jar 1.2.0
io.dropwizard : dropwizard-assets jar 1.2.0
io.dropwizard : dropwizard-views-freemarker jar 1.2.0
org.apache.commons : commons-lang3 jar 3.6
commons-codec : commons-codec jar 1.10
org.raml : raml-parser-2 jar 1.0.15
org.commonjava.googlecode.markdown4j : markdown4j jar 2.2-cj-1.1

provided (1)

Group / Artifact Type Version
io.dropwizard : dropwizard-core jar 1.2.0

test (5)

Group / Artifact Type Version
junit : junit jar 4.12
org.assertj : assertj-core jar 3.8.0
org.mockito : mockito-core jar 2.10.0
io.dropwizard : dropwizard-testing jar 1.2.0
org.skyscreamer : jsonassert jar 1.5.0

Project Modules

There are no modules declared in this project.

DropWizard RAML API Resource Bundle

Status Travis Maven Central Apache 2.0

This bundle allows a RAML specification to be attached to the resources of the service, exposing a human-readable, HTML representation of the RAML specification on the /api resource.

EOL Notice

This library has reached it's conclusion and it's concepts have been migrated into the new DropWizard RAML project. Specifically, to migrate from this view to the new view, refer to the DropWizard RAML API Docs library.

Disclaimer

This bundle supports both RAML 1.0 and RAML 0.8 but not all features of the specification language have been implemented in the view.

If you wish to include a missing feature, either raise an issue and I will address it when time permits or fork the project and make a pull request.

As this bundle now uses the newer raml-parser-2 library, Mulesoft have implemented some stricter controls over the specification structure, even for RAML 0.8. This means some older specification files may need to be updated to meet requirements.

Maven Central

<dependency>
    <groupId>net.ozwolf</groupId>
    <artifactId>dropwizard-raml-view</artifactId>
    <version>${current.version}</version>
</dependency>

Compatibility

The following versions are available via Maven Central:

While versions have not been deployed to Maven Central, older DropWizard versions with RAML 0.8 compatibility tags are available, though they are EOL without support. To use these, clone the repository, switch to the branch in question and use a mvn clean install to install it locally or create a package that can be uploaded to your own repository.

  • DropWizard 0.8
  • DropWizard 0.7

Endpoints

The following endpoints will be made available on your service:

  • /api - The API specification as a HTML viewable endpoint.
  • /api/raw - The API specification as it's raw YAML format. Note: At present, this resource is unavailable due to the RamlEmitter functionality of the original RAML Parser library not being implemented in the newer library. Please refer to this issue for further information.

Example Usage

To add this bundle to your service and expose a RAML specification under the /api resource. The bundle will differentiate between version 0.8 and version 1.0 RAML specifications automatically.

bootstrap.addBundle(RamlView.bundle("apispecs/apispecs.raml"));

Functionality Caveat

This project currently provides functionality that meet my usage needs for RAML specifications. It is by no means a comprehensive HTML representation of the RAML specification. This means particular components that other people need will be missing.

RAML Specification

Contributions

Contributions to this project are welcome.

Dependencies

This project uses the following dependency projects:

net.ozwolf
Software development in the JVM sphere.

Versions

Version
1.2.1.0
1.1.1.0
1.0.2.0
1.0.0.1
0.9.2.1