The Swagger connector enables LoopBack applications to interact with other RESTful APIs described using the OpenAPI (Swagger) specification.
Page Contents

loopback-connector-swagger

The Swagger connector enables LoopBack applications to interact with other RESTful APIs described using OpenAPI (Swagger) specification v.2.0.

Configure a Swagger data source

To interact with a Swagger API, we first configure a data source backed by the Swagger connector:

Options for the Swagger connector

  • spec: http url or local file system path to the swagger specification file (Specification file must be of .yaml/.yml or .json extension) or the specification.

Note: Current implementation supports relative local path to the current working directory (i.e. process.cwd()).

  • validate: when true, validates provided spec against Swagger specification 2.0 before initializing a data source. default: false
  • security: security configuration for making authenticated requests to the API. Supports three types of security schemes: basic authentication, API Key & OAuth2

  • Basic authentication:

  • API Key:

  • OAuth2:

Note: value of name must correspond to a security scheme declared in the Security Definitions object within spec document.

Create a model from the Swagger data source

NOTE: The Swagger connector loads the API specification document asynchronously. As a result, the data source won’t be ready to create models until it is connected. The recommended way is to use an event handler for the connected event of data source:

ds.once('connected', function(){
  var PetService = ds.createModel('PetService', {});
  //...
});

Once the model is created, all available Swagger API operations can be accessed as model methods.

For example:

PetService.getPetById({petId: 1}, function (err, res){
  //...
});

Extend a model to wrap/mediate API Operations

Once the model is defined, it can be wrapped or mediated to define new methods. The following example simplifies the getPetById operation to a method that takes petID and returns a Pet instance.

This custom method on the PetService model can be exposed as REST API end-point. It uses the loopback.remoteMethod to define the mappings:

Example

coming soon...

Tags: connectors