0.1.0 • Published 9 years ago

swagged-angular-resources v0.1.0

Weekly downloads
3
License
MIT
Repository
github
Last release
9 years ago

swagged-angular-resources

AngularJS $resource code generator written in CoffeeScript for Swagger v2.0 documentated endpoints.

Install globally through npm

$ npm install -g swagged-angular-resources

Usage

$ swagged-angular-resources swagger-docs-url|swagger-docs-file <angular-module-name=moduleName> <--strip-trailing-slashes>

Example

Run the following command:

$ swagged-angular-resources https://raw.githubusercontent.com/swagger-api/swagger-spec/master/examples/v2.0/json/petstore-expanded.json --angular-module-name=swaggedAngularResources --strip-trailing-slashes

This will output the following AngularJS code:

(function(angular) {
  'use strict';

  angular
    .module('swaggedAngularResources', [
      require('angular-resource')
    ])
    .config(function($resourceProvider) {
      $resourceProvider.defaults.stripTrailingSlashes = false;
    })
    .provider('Pet', function() {
      this.$get = function($resource, apiUrl) {
        return $resource(null, null, {
          findPets: {
            method: 'GET',
            url: apiUrl + '/pets',
            isArray: true,
          },
          addPet: {
            method: 'POST',
            url: apiUrl + '/pets',
          },
          findPetById: {
            method: 'GET',
            url: apiUrl + '/pets/:id',
            params: {
              'id': '@id',
            },
          },
        });
      };
    });

    module.exports = 'swaggedAngularResources';
})(angular);

From your AngularJS application module:

(function(angular) {
  angular
    .module('myAngularApp', [
      require('./resources.js'
    ])
    .value('apiUrl', 'http://petstore.swagger.io/v2/') // injecting apiUrl
    .run(function(Pet) {
      var pet, pets;
      // use class based function to retrieve all pets
      pets = Pet.findPets();
      
      // and optionally pass url templating parameters or $resource callbacks
      pet = Pet.findPetById({id: 1}, function(success) {}, function(error) {});
      
      // create a new Pet object
      pet = new Pet({name: 'Goldfishy'});
      // use instance based functions on Pet object
      pet.$addPet();
    });
})(angular);

Develop with swagged-angular-resources

Fork or clone this repository! And then run:

$ npm install 

and then

$ npm link

and then

$ gulp watch

Changelog

0.0.10

  • Added @ngdoc generation argument (default: --ngdoc=false)

0.0.9

  • Changed angular module name argument (default: --angular-module-name=swaggedAngularResources)
  • Added configurable $resource strip trailing slashes configuration (default: --strip-trailing-slashes=false)
  • Added yargs for easier argument parsing

0.0.8

  • Added configurable angular module name (2nd argument)
  • Added IIFE to provider template

TODO

  • Add arguments to script such as (default apiUrl value as argument or from Swagger docs)
  • Add service and factory templates
0.1.0

9 years ago

0.0.15

9 years ago

0.0.14

9 years ago

0.0.13

9 years ago

0.0.12

9 years ago

0.0.11

9 years ago

0.0.10

9 years ago

0.0.9

9 years ago

0.0.8

9 years ago

0.0.7

9 years ago

0.0.6

9 years ago

0.0.5

9 years ago

0.0.4

9 years ago

0.0.3

9 years ago

0.0.2

9 years ago

0.0.1

9 years ago