Important
You are browsing documentation for version 6.0 of OroCommerce, supported until 2028. Read the documentation for the latest LTS version to get up-to-date information.
See our Release Process documentation for more information on the currently supported and upcoming releases.
ApiAccessor
ApiAccessor provides an abstraction for API access points. It is designed to be initialized from server-side configuration and simplifies sending requests with consistent options and caching support.
Server Configuration Example
The following example demonstrates how to configure api_accessor on the server with a full set of options (excluding route_parameters_rename_map):
save_api_accessor:
route: orocrm_opportunity_task_update # for example this route uses following mask
# to generate url /api/opportunity/{opportunity_id}/tasks/{id}
http_method: POST
headers:
Api-Secret: ANS2DFN33KASD4F6OEV7M8
default_route_parameters:
opportunity_id: 23
action: patch
query_parameter_names: [action]
Client Usage Example
Once configured, you can use the ApiAccessor from the client:
var apiAP = new ApiAccessror(serverConfiguration);
apiAP.send({id: 321}, {name: 'new name'}).then(function(result) {
console.log(result)
})
This will issue a POST request to /api/opportunity/23/tasks/321?action=patch with the body {name: ‘new name’} and log the response to the console.
Extends
Extends BaseClass with the following options:
Param |
Type |
Description |
|---|---|---|
options |
Object |
Options container |
options.route |
string |
Required. Route name |
options.http_method |
string |
HTTP method to access this route (e.g., GET/POST/PUT/PATCH). Defaults to ‘GET’. |
options.form_name |
string |
Optional. Wraps the request body into a form_name so request looks like {<form_name>:<request_body>} |
options.headers |
Object |
Optional. Additional HTTP headers |
options.default_route_parameters |
Object |
Optional. Default parameters for route, merged with urlParameters to build URL |
options.route_parameters_rename_map` |
Object |
Optional. Rename incoming parameters provided to send() to proper names, e.g., {<old-name>: <new-name>, …} |
options.query_parameter_names |
Array.string |
Optional. List of parameters to include in query string (e.g., ?<parameter-name>=<value>). Needed for FOSRestBundle compatibility |
Instance Methods
apiAccessor.initialize(options)
Param |
Type |
Description |
|---|---|---|
options |
Object |
Passed to the constructor |
apiAccessor.isCacheAllowed() ⇒ `boolean`
Returns true if the selected HTTP method allows caching.
apiAccessor.clearCache()
Clears response cache.
apiAccessor.validateUrlParameters(urlParameters) ⇒ `boolean`
Validates URL parameters. Returns true if parameters are valid and the route URL can be built.
Param |
Type |
Description |
|---|---|---|
urlParameters |
Object |
URL parameters to compose the URL |
apiAccessor.send(urlParameters, body, headers, options) ⇒ `$.Promise`
Sends a request to the server and returns a $.Promise instance with abort() support.
Param |
Type |
Description |
|---|---|---|
urlParameters |
Object |
URL parameters to compose the URL |
body |
Object |
Request body |
headers |
Object |
Headers to send with the request |
options |
Object |
Additional options |
options.processingMessage |
string |
Shows notification message while request is in progress |
options.preventWindowUnload |
boolean | string |
Prevents window unload until request is finished. Can be boolean or string describing changes. |
apiAccessor._makeAjaxRequest(options)
Makes an AJAX request or returns the cached result. Access: protected.
Param |
Type |
Description |
|---|---|---|
options |
Object |
Options to pass to the AJAX call |
apiAccessor.hashCode(url) ⇒ `string`
Returns a hash code of the URL.
Param |
Type |
|---|---|
url |
string |
apiAccessor.isCacheExistsFor(urlParameters)
Returns true if data is cached for the given URL parameters. Access: protected.
Param |
Type |
Description |
|---|---|---|
urlParameters |
Object |
URL parameters to check |
apiAccessor.getHeaders(headers) ⇒ `Object`
Prepares headers for the request.
Param |
Type |
Description |
|---|---|---|
headers |
Object |
Headers to merge into default list |
apiAccessor.prepareUrlParameters(urlParameters) ⇒ `Object`
Prepares URL parameters before building the URL.
Param |
|---|
urlParameters |
apiAccessor.getUrl(urlParameters) ⇒ `string`
Prepares URL for the request.
Param |
Type |
Description |
|---|---|---|
urlParameters |
Object |
Map of URL parameters to use |
apiAccessor.formatBody(body) ⇒ `Object`
Prepares the request body.
Param |
Type |
Description |
|---|---|---|
body |
Object |
Map of URL parameters to use |
apiAccessor.formatResult(response) ⇒ `Object`
Formats the response before returning it.
Param |
Type |
|---|---|
response |
Object |
apiAccessor.getErrorHandlerMessage(options) ⇒ `boolean`
Returns the error handler message attribute from the given options.
Param |
|---|
options |