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
- 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
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 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.
If you create a generator let us know to add to this list.