Skip to content
This repository has been archived by the owner on Feb 16, 2023. It is now read-only.

ozwolf-software/dropwizard-raml

Repository files navigation

DropWizard RAML

Status Travis Maven Central Apache 2.0

This project started as a way to better learn how RAML and JAX-RS could integrate together (before MuleSoft released the RAML for JAX-RS project).

During this time, this private project expanded with tools and plugins that were suitable for integrating RAML specification generating and usage with a DropWizard micro service.

EOL Support

As Mulesoft have joined the Open API (Swagger) coalition, the primary purpose of this library is now better covered by the Swagger 3 libraries. As such, it is recommended for people to look at Swagger 3 for an API documentation solution with it's excellent JAX-RS solution.

DropWizard Compatibility

  • 1.0.0+ - DropWizard 1.3+

Documentation

Please refer to the wiki for information on using the tools in this project.

Note: The documentation of this project is an ongoing task. If you feel something is fundamentally missing from it, please raise an issue with a suggestion.

Components

  • Annotations - a library containing the RAML annotations used to help describe a JAX-RS service in code
  • RAML Generator - the library that contains the logic to investigate your project and derive a RAML specification
  • Maven Plugin - a Maven plugin that can be used to generate a RAML specification file during the build process
  • API Docs - a configured bundle that provides a readable endpoint on services explaining the API
  • Validator - a validation library that confirms a HTTP request against a RAML specification
  • Monitor - a runtime library that monitors incoming and outgoing requests, logging if successful request/response chains do not adhere to the API specification
  • Tester (TBA) - a testing library that allows DropWizard testing to verify RAML specifications
  • Example Service - an example DropWizard JAX-RS service showcasing all the tools available in this project

Scala Dependency

This project has a dependency on org.scala-lang:scala-library:2.12.*. As a transient depdendency, this may cause conflicts with other libraries.

Using In Non-DropWizard Jersey JAX-RS Projects

Note: There are plans to remove DropWizard as a dependency from components that don't fundamentally require it for it's role (ie. the RAML generator).

The Annotations and RAML Generator components can be used in non-DropWizard Jersey JAX-RS projects that utilise Jackson.

This would allow a RAML specification to be generated from such a service.

To achieve this, specific dependencies will need to be provided for the components. The dependencies are provided below. While no guarantee is provided, it should theoretically work. YMMV.

Dependencies

  • Annotations
    • javax.ws.rs:javax.ws.rs-api:2.0.1+
  • RAML Generator
    • com.fasterxml.jackson.core:jackson-core:2.9.5+
    • com.fasterxml.jackson.core:jackson-databind:2.9.5+
    • com.fasterxml.jackson.core:jackson-annotations:2.9.5+
    • com.fasterxml.jackson.datatype:jackson-datatype-joda:2.9.5+
    • com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.5+
    • javax.ws.rs:javax.ws.rs-api:2.0.1+
    • org.glassfish.jersey.core:jersey-common:2.25.1+
    • org.apache.commons:commons-lan3:3.5+

About

A toolbox of libraries to better help generate and manage RAML specifications for your DropWizard services.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages