0.1.0 • Published 10 years ago

swagged-angular-resources v0.1.0

Weekly downloads
3
License
MIT
Repository
github
Last release
10 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

10 years ago

0.0.15

10 years ago

0.0.14

10 years ago

0.0.13

10 years ago

0.0.12

10 years ago

0.0.11

10 years ago

0.0.10

10 years ago

0.0.9

10 years ago

0.0.8

10 years ago

0.0.7

10 years ago

0.0.6

10 years ago

0.0.5

10 years ago

0.0.4

10 years ago

0.0.3

10 years ago

0.0.2

10 years ago

0.0.1

10 years ago