Skip to content
This repository has been archived by the owner on Jan 19, 2024. It is now read-only.

Generate an API mock service from a RAML definition using Osprey

License

Notifications You must be signed in to change notification settings

raml-org/raml-mock-service

 
 

Repository files navigation

RAML Mock Service

NPM version NPM downloads Build status Test coverage

Generate an API mock service from a RAML definition using Osprey. This implementation was heavely influenced by MuleSoft's Osprey Mocking Service.

Usage

Global (CLI)

npm install -g raml-mock-service

Start the service from the CLI. This will automatically use the baseUri as the path to the mock service. For example, http://example.com/api will result in http://localhost:{PORT}/api.

raml-mock-service -f api.raml -p 3000

Options

  • -f Path to the root RAML definition (E.g. /path/to/api.raml)
  • -p Port number to bind the server locally

Locally (JavaScript)

npm install raml-mock-service --save

The mocking service simply accepts a RAML definition and returns a router that can be mounted into any Connect-style middleware layer or even used with http. Best used with osprey to support incoming validation automatically.

var mockService = require('../raml-mock-service')
var express = require('express')
var parser = require('raml-1-parser')
var path = require('path')
var osprey = require('osprey')

var app = express()

parser.loadRAML(path.join(__dirname, 'api.raml'), { rejectOnErrors: true })
  .then(function (ramlApi) {
    var raml = ramlApi.expand(true).toJSON({ serializeMetadata: false })
    app.use(osprey.server(raml))
    app.use(mockService(raml))
    app.listen(3000)
  })

Additional methods

  • createServer Creates a mock service instance with Osprey
  • createServerFromBaseUri Creates a mock service with Osprey and uses the base URI path
  • loadFile Creates a mock service with Osprey and the base URI path from a RAML file

Limitation

RAML 1.0

This module only uses the example (or examples) property inside a given resource/method body. It does not take into consideration any of the example properties defined inside the properties or schema of the body itself.

License

Apache License 2.0

About

Generate an API mock service from a RAML definition using Osprey

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 97.3%
  • RAML 2.7%