Programming with iApps LX

In iApps® LX, as with creating iControl LX extensions, the programming framework is based on creating REST endpoints. For more information on how to create iControl extensions, see Creating an iControl Extension.

iApps LX MVC Design Pattern

iApps LX provides a programmatic solution to the configuration of a BIG-IP® system and many other external systems. Similar to the Model-View-Controller (MVC) design pattern, iApps LX extensions consist of a data model (JSON template), a view, and controller (processors). The MVC pattern emphasizes the separation of the internal representation of information from the presentation of information, and iApps LX employs that pattern in the development of extensions. The analogy serves to highlight three distinct components of extensions: data models, processors, and views.

Model - JSON Template

Templates represent the data model in the design pattern. Templates are a JSON data block that represent the configuration values and their defaults. A template serves as the basis for the creation of block instances (which are deployable). Templates, in the JSON body, include a unique name and ID to identify the extension, as well as input properties. Templates are also used by the iApps LX BIG-IP GUI (the default view component) or to generate a custom GUI view.

View - GUI

The view component of iApps LX is the iApps LX GUI. iApps LX includes a default view, available in the BIG-IP® GUI that is populated from the JSON template. Alternately, you can create your own custom GUIs using HTML and JavaScript. In addition, iApps LX can also be used via API REST requests, without using any GUI at all.

Controller - Processors

The controller component of iApps LX is the iApps LX processors. The processors are iControl LX extensions that perform an action from defined block instance values. The configuration processor is required and the statistics and audit processors are optional.