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


Back to Top


NAME

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

Back to Top


VERSION

version 2.1.4

Back to Top


SYNOPSIS

 package MyApp::Controller::API;
 use Moose;
 extends 'CatalystX::Controller::ExtJS::Direct::API';
 1;
 <script type="text/javascript" src="/api/src?namespace=MyApp.Direct"></script>
 <script>Ext.Direct.addProvider(Ext.app.REMOTING_API);</script>

Back to Top


ACTIONS

router

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 => { router => { Path => 'callme' } } );
  1;

The router is now available at /api/callme.

src

Provides the API as JavaScript. Include this action in your web application as shown in the SYNOPSIS. To set the namespace for the API, pass a namespace query parameter:

  <script type="text/javascript" src="/api/src?namespace=MyApp.Direct"></script>

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 the Catalyst::Controller::REST manpage you can specify a content type in the request header and get the API encoded accordingly.

Back to Top


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
  });

Back to Top


AUTHOR

Moritz Onken <onken@netcubed.de>

Back to Top


COPYRIGHT AND LICENSE

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

This is free software, licensed under:

  The (three-clause) BSD License

Back to Top

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