AngularJS service for communicating with endpoints described by swagger v1.2.
To use, include one of these files in your application:
- swagger-angular-client.js
- swagger-angular-client.js.min , a minified version (source map)
You may also bower install swagger-angular-client to install using bower. Once you've included the script, you can include the swagger-client module as a dependency to your existing application and use the swaggerClient service to generate api clients.
Schemas can be generated using fetch-swagger-schema.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Example</title> <script src="angular.js"></script> </head> <body ng-app="myApp" ng-cloak> Pet: {{ pet.name || 'Loading...' }} <script src="swagger-client.js"></script> <!-- `petStoreSchema.js` exposes the JSON object generated by [fetch-swagger-schema] when run against http://petstore.swagger.wordnik.com/api/api-docs to the window as `PetStoreSchema` (see `examples/petStoreSchema.js`). --> <script src="petStoreSchema.js"></script> <script> angular.module('myApp', ['swagger-client']) .run(function($rootScope, swaggerClient){ var api = swaggerClient(PetStoreSchema); api.auth('secret-key'); api.pet.addPet({id: 1, name: 'Bob'}).then(function(){ return api.pet.getPetById(1); }).then(function(pet){ $rootScope.pet = pet; }); }); </script> </body> </html>
'use strict'; // First, we need to define a provider for the api client, we'll call it 'myAPI' angular.module('data').provider('myAPI', ['window', function(window){ var schema = window.API_SCHEMA, auth; // Override the base path to enable pointing to different backends this.basePath = function(basePath){ schema.apis.forEach(function(api){ api.apiDeclaration.basePath = basePath; }); }; // Allows for setting the auth token during .config() phase of app start up. this.auth = function(authToken){ auth = authToken; }; // Instantiates the swagger-angular-client this.$get = ['$rootScope', 'swaggerClient', function($rootScope, swaggerClient){ var api = swaggerClient(schema); api.authorization(auth); // Handle any future api token changes $rootScope.$on('api token changed', function($event, authToken){ api.authorization(authToken); }); return api; }]; }]) // Now we'll configure myAPI during app start up by setting the auth token. // You would decide where this token comes from. Maybe it's ok to embed directly // in the code. Maybe it comes from a cookie. Maybe you don't even need auth. // This all depends on your auth scheme. .config(['myAPIProvider', function(myAPIProvider){ myAPIProvider.auth(THE_TOKEN); }]) // Finally, we can start using myAPI in the application .run(['myAPI', function(myAPI){ // This would be an application-specific call. In this example, we make an // http request to a api endpoint to notify the metrics resource that the // application has loaded. myAPI.metrics.appLoaded({ time: Date.now() }); }]);