Skip to content

Luvgupta/dropwizard-raml

 
 

Repository files navigation

DropWizard RAML

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.

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
  • Monitor (TBA) - 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.11.*. As a transient depdendency, this may cause conflicts with other libraries.

Using In Non-DropWizard Jersey JAX-RS Projects

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.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 92.2%
  • FreeMarker 7.5%
  • Other 0.3%