🎩 You're Invited:Meet the Socket team at Black Hat in Las Vegas, August 3-6.RSVP
Sign In

raml2code

Package Overview
Dependencies
Maintainers
1
Versions
44
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

raml2code

Raml spec to code

npmnpm
Version
1.8.0
Version published
Weekly downloads
47
104.35%
Maintainers
1
Weekly downloads
 
Created
Source

Raml to code generator

Build Status

Versioning

The raml2code generator is versioned in the following manner:

x.y.z

in which x.y denotes the version of the RAML specification and z is the version of the raml2code.

So 0.8.38 is the 38nd revision of the ralm2code for the 0.8 version of the RAML specification.

  • This module generate code from a RAML definition
  • It uses Handlebars templates

It's a Gulp-plugin so to try

  • Install gulp
 npm install -G gulp
  • install the generators you needed
 npm install --save-dev raml2code-groovy-pojo
  • configure the gulpfile.js
var gulp = require('gulp');
var raml2code = require('raml2code');
//Install a generators:
var genDTO = require("raml2code-groovy-pojo");

gulp.task("dtos", function(){
  gulp.src('./test/cats.raml')
    .pipe(raml2code({generator: genDTO, extra: {package:'com.gex'}}))
    .pipe(gulp.dest('build'));
});
  • Run the generator
  gulp dtos

Sample gulpfile.js

var gulp = require('gulp');

var raml2code = require("raml2code");
var genPojos = require("raml2code-groovy-pojo");
var genJaxRS = require("raml2code-jaxrs-interfaces");
var genRetrofitClient = require("raml2code-retrofit");

var raml = require('gulp-raml');

var packagePojo = "gex.catapi.dto";
var packageClient = "gex.catapi.client";
var packageJersey = "gex.catapi.resources";

//this should point to your raml definition
var ramlResource = '../../test/raml/cats.raml'

gulp.task('raml', function() {
  gulp.src(ramlResource)
    .pipe(raml())
    .pipe(raml.reporter('default'))
    .pipe(raml.reporter('fail'));
});

gulp.task("genPojos", ['raml'], function(){
  gulp.src(ramlResource)
    .pipe(raml2code({generator: genPojos, extra: {package: packagePojo}}))
    .pipe(gulp.dest('./src/generated/groovy/gex/catapi/dto'));
});

gulp.task("genRetrofitClient" , ['raml'], function(){
  gulp.src(ramlResource)
    .pipe(raml2code({generator: genRetrofitClient, extra: {package: packageClient, importPojos: packagePojo}}))
    .pipe(gulp.dest('./src/generated/java/gex/catapi/client'));
});

gulp.task("genJaxRS" , ['raml'], function(){
  gulp.src(ramlResource)
    .pipe(raml2code({generator: genJaxRS, extra: {package: packageJersey, importPojos: packagePojo}}))
    .pipe(gulp.dest('./src/generated/groovy/gex/catapi/resources'));
});

gulp.task('build', ['raml', 'genPojos',  'genJaxRS', 'genRetrofitClient']);

gulp.task('default', ['build']);

A full example of using using raml2code could be found here:

raml2code-Example

We use the Gradle with the gulp plugin to build and integrate with Java.

gradle

gradle-gulp-plugin

You can make your own generators, DIY

A generator is a simple object with the following properties:

  • Required properties:
    • template -> Handlebars template (you could use your own templates).
    • parser(data) -> Function it receives RAML parsed data, returns model that will be used in the template engine, each model must have a name, this name is the file that will be generated. [{ name: "test.test", model: {title:data.title + " finos"}}]
  • Optional properties:
    • helpers -> Handlebars helpers.
    • partials -> Handlebars partials.

Generators create and in use by GEX.

If you create a generator let us know to add to this list.

Keywords

RAML

FAQs

Package last updated on 06 Mar 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts