Create Tripal WS BrAPI Custom Call¶
Creating a custom call, or other call types, is as easy as setting up parameters and defining a query or callback function that is responsible for generating relevant data as the response or result from executing a custom call.
Class definition
class TripalWebServiceBrapiV1Yourcallname extends TripalWebServiceCustomCall {
// Parameters allowed in this call which can be included in the call as
// query string, ie: host/brapi/v1/call?parameter 1=value¶meter 2=value...
public $call_parameter = [
// Key : Expected value for this key.
‘parameter 1’ => ‘data type’,
‘parameter 2’ => ‘data type’,
‘parameter …’ => ‘data type’,
];
// Keyword used to identify result items.
// data for most call in BrAPI v1.3 and may vary in newer version.
protected $call_payload_key = 'data';
// Unit of response for this call.
// With corresponding minor version a response is for.
// Fields must match item count in the result.
// See restriction on multiple version in Configuration.
public $response_field = [
'1.3' => ['response field 1', 'response field 2', ' response field …'],
'1.2' => ['...'],
'2.0' => ['...'],
];
// Call parameters as provided in the request url.
public $call_asset;
// Class name.
public $class_name;
// PREPARE RESULT:
// Callback to create data.
public function getResult() {
// Define values matching the number of elements defined in $response field.
return [];
}
}
- Rename the class name using the format defined relating to call class filename (titled Yourcallname in the code snippet above).
- List the parameters that user can apply to request specific items from the result. Each parameter can be set to a data type which will ensure that only appropriate entries are permitted.
int | (single value) numbers, including 0. |
text | (single value) text, alphanumeric value. |
array-int | (array, multiple values) elements are numbers. |
array-text | (array, multiple values) elements are text value. |
hash-code | (single value) xxxxx-xxxxx-xxxxx-xxxxx-xxxxx alphanumeric format. |
- Define the unit of data and its elements in $response_field. Set the key to the target BrAPI version number. ie 1.3 or 1.2.
- Set the $call_payload_key to a string value. This variable will render as the key in the response. ie data (BrAPI 1.3) and call (BrAPI 2.0) used by /calls and /serverinfo calls, repectively.
- Define the result in the only method of this class getResult().
Note
- Ensure that the number of items and the order of data returned by getResult()
- should match the items in the $response_filed. Include a mechanism to handle each parameters defined in #2. Parameters requested in the url are available in getResult() through the property $call_asset.
$this->call_asset[‘parameters’] property and
$this->call_asset[‘parameters’][‘parameter 1’],
$this->call_asset[‘parameters’][‘parameter 2’],
$this->call_asset[‘parameters’][‘parameter ...’] to access the value.
- Save the file.
- Test your call using host/web-services/brapi/v + version/yourcallname.
- Test your call with the parameters set using host/web-services/brapi/v + version/yourcallname?parameter 1=value¶meter 2=value…