The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

CatalystX::Controller::ExtJS::Direct::API - API and router controller for Ext.Direct

VERSION

version 1.101570

ACTIONS

rpc

Every request to the API is going to hit this action, since the API's url will point to this action.

You can change the url to this action via the class configuration.

Example:

  package MyApp::Controller::API;
  __PACKAGE__->config( action => { rpc => { Path => 'callme' } } );
  1;

The router is now available at /api/callme.

index

This action is called when you access the namespace of the API. It will load "api" and return the JSON encoded API to the client. Since this class utilizes Catalyst::Controller::REST you can specify a content type in the request header and get the API encoded accordingly.

METHODS

api

Returns the API as a HashRef.

Example:

  {
        url => '/api/router',
        type => 'remote',
        actions => {
                Calc => {
                        methods => [
                                        { name => 'add', len => 2 },
                                        { name => 'subtract', len => 0 }
                                ]
                }
        }
  }

encoded_api

This method returns the JSON encoded API which is useful when you want to include the API in a JavaScript file.

Example:

  Ext.app.REMOTING_API = [% c.controller('API').encoded_api %];
  Ext.Direct.addProvider(Ext.app.REMOTING_API);
  
  Calc.add(1, 3, function(provider, response) {
        // process response
  });

AUTHOR

  Moritz Onken <onken@netcubed.de>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2010 by Moritz Onken.

This is free software, licensed under:

  The (three-clause) BSD License