Transactions with a MySQL database are managed through an application programming interface (API) whose code is in the nc-api folder. This sections outlines the organization of the API and the main components of nc-api folder.
The file nc-api.php is the main gateway to the NetworkCurator API. This script
receives request, decrypts it, determines how to forward the request to the individual controllers (see below), collects and sends back the output.
Note: The script is set up to decrypt requests using a fixed key that is generated during installation. This means that the API only accepts requests from a single source. That source is the networkcurator.php file (the script that processes AJAX calls from a user’s browser).
The API expects to receive a request with several fields
| Field | Description |
|---|---|
| user_id | the id of the requesting user |
| controller | the controller handling the request (see below) |
| action | API function within the controller's scope (see below) |
| [Other fields may be required for each combination of controller and action] |
The output of this script should be an object with a field success and one of data or errormsg.
The directory controllers contains php classes that support parts of the API.
| Controller | Description |
|---|---|
| NCAnnotations | management of annotations such as title, abstracts, comments, etc. |
| NCData | data imports and exports |
| NCGraphs | queries and updates on graph structures |
| NCNetworks | management of networks (e.g. creating networks) |
| NCOntology | management of node and link type ontologies |
| NCUsers | management of user accounts |
Public functions within these classes define the action fields required by the API. See the in-code documentation regarding all the available actions and their required input fields.
Directory helpers contains miscellaneous classes and functions that are used within the controllers. They are set separately in the helpers directory so that the nc-api.php script does not confuse them with controllers/actions that can be called by the users.
The tests directory contains some test scripts that can be run on the command line. These tests make changes to the local database - drop tables, create new users and network objects. They should not be run on a production system.