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/.ymlor.jsonextension) or the specification.
Note: Current implementation supports relative local path to the current working directory (i.e. process.cwd()).
- validate: when
true, validates providedspecagainst 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...