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.
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.
1.0.0+
- DropWizard 1.3+
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.
- 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
This project has a dependency on org.scala-lang:scala-library:2.12.*
. As a transient depdendency, this may cause conflicts with other libraries.
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.
- 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+