Response Format

API HTTP response messages use standard HTTP response codes to designate high-level status (success, failure, etc.) and simple XML payload in the response body to provide additional method specific data or specific error messages.

HTTP Response Codes

Zend Server Web API operations will return standard HTTP response codes in order to indicate overall success or failure. In case of an error, the HTTP status code may further indicate the nature of the problem, and a specific error code contained in the response body will indicate the specific nature of the error.

The following HTTP response codes may be used:

  • 200 OK - The operation has completed successfully.
  • 202 Accepted - The operation was accepted and is being processed, but is not complete yet.
  • 4xx - HTTP status codes between 400 and 499 are used to designate a client-side error. For example, a missing request parameter or an authentication error.
  • 5xx - HTTP status codes between 500 and 599 are used to designate a server-side error. For example, a temporary locking issue or an unexpected error in the server operation.

Additional information about HTTP response codes for error responses is available in Error Responses, as well as in the documentation for each method.

HTTP Response Headers

The following HTTP response headers will be included in API responses:

  • Content-type - Unless stated otherwise, these will be “application/vnd.zend.serverapi+xml; version=<API version>”. For more information about API versions see API Versioning Negotiation.

HTTP Response Body

The Web API HTTP response body will almost always contain an XML document of the following format:

<?xml version="1.0" encoding="UTF-8"?>
<zendServerAPIResponse xmlns=“http://www.zend.com/server/api/1.0”>
   <requestData>
     <apiKeyName>angel.eyes</apiKeyName>
    <method>clusterGetServerStatus</method>
  </requestData>
  <responseData>
    [response data here...]
  </responseData>
</zendServerAPIResponse>

All API responses are enclosed in <zendServerAPIResponse> tags, and contain two sections: <requestData> which includes some reference information about the request; and <responseData> which includes the response data.

The content of the <responseData> section differs depending on the specific method called. Refer to the method's specific documentation for additional information.

In error responses, the <responseData> section is replaced with an <errorData> section. See Error Responses for additional information.

 

Some Web API methods will not return an XML document in case of a successful operation - specifically, methods that export large amounts of binary data such as the configurationExport method. In such cases, this is specifically indicated in the method's documentation. Note that you can check the value of the Content-type response header in order to know in advance what kind of content to expect in the response.

Error Responses

In a response representing an error, the <responseData> XML section is replaced with the <errorData> XML section, which has the following format:

<errorData>
  <errorCode>serverDoesNotExist</errorCode>
  <errorMessage>A server with the specified ID does not exist in the cluster</errorMessage>
</errorData>

Where:

  • <errorCode> is a short alphanumeric constant string that represents the specific error.
  • <errorMessage> is a human readable, native language explanation of the error.

In addition, some error responses may include additional elements in the <errorData> container, with additional information relevant to the specific error.

Generic Error Codes

The following generic error responses are possible for any operation:

HTTP Code

 Error Code

Description

400

missingHttpHeader

A required HTTP header is missing.

400

unexpectedHttpMethod

An unexpected HTTP method where GET is used but POST is expected.

400

invalidParameter

One or more request parameters contains invalid data.

400

missingParameter

The request is missing a required parameter.

400

unknownMethod

An unknown Zend Server API method.

400

malformedRequest

The server is unable to understand the request.

401

authError

An authentication error occurred because of an unknown key or invalid request signature.

401

insufficientAccessLevel

The user is not authorized to perform this action.

401

timeSkewError

The request timestamp deviates too much from the server time.

405

notImplementedByEdition

The method is not implemented by this edition of Zend Server.

406

unsupportedApiVersion

The API version is not supported by this version of Zend Server.

500

internalServerError

An unexpected error occurred on the server side.

500

serverNotConfigured

This Zend Server installation was not yet initialized (the user did not go through the initial setup wizard).

500

serverNotLicensed

Zend Server does not have a valid license, which is required to perform this operation.

Refer to the documentation of a specific method for details about additional possible errors specific to each method.