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

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

License

Notifications You must be signed in to change notification settings

ozwolf-software/dropwizard-raml

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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