Skip to content

Arguments for JSON Rest API 4.1 must be provided in strict order #9425

Open
@vladaman

Description

@vladaman

Not mentioned anywhere in the docs. Arguments for JSON REST API must be provided in strict order. Re-ordering encoded JSON request will cause random issues.

Following line expects argument as an indexed array:

$res = call_user_func_array(array( $this->implementation, $method),$data);

// Works correctly
$params = array();
$params['session'] = $this->sessionToken;
$params['module_name'] = 'Accounts';
$params['query'] = "accounts.id IS NOT NULL");
$params['order_by'] = '';
$params['offset'] = 0;
$params['select_fields'] = array();
$params['link_name_to_fields_array'] = array(array('name'=>'accounts', 'value'=>array('id', 'name')));
$params['max_results'] = 5;
$params['deleted'] = false;
$jsonEncodedData = json_encode($params);
// Folllowing will fail
$params = array();
$params['module_name'] = 'Accounts';
$params['session'] = $this->sessionToken; // Moved entry as second argument
$params['query'] = "accounts.id IS NOT NULL");
$params['order_by'] = '';
$params['offset'] = 0;
$params['select_fields'] = array();
$params['link_name_to_fields_array'] = array(array('name'=>'accounts', 'value'=>array('id', 'name')));
$params['max_results'] = 5;
$params['deleted'] = false;
$jsonEncodedData = json_encode($params);

Environment

  • SuiteCRM Version used: 7.12.2

Metadata

Metadata

Assignees

No one assigned

    Labels

    Area: APIIssues & PRs related to all things regarding the APIType: BugBugs within the core SuiteCRM codebase

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions