APIResponse, BulkAPIResponse and FileAPIResponse are the wrapper objects for Zoho CRM APIs’ responses. All API calling methods would return one of these two objects.
- A method-seeking entity would return APIResponse object, whereas a method-seeking list of entities would return BulkAPIResponse object.
- FileAPIResponse will be returned for file download APIs to download a photo or an attachment from a record or note such as record.DownloadPhoto, record.DownloadAttachment etc.
- Use the instance variable "Data" or "BulkData" property to get the entity data alone from the response wrapper objects. APIResponse.Data would return a single Zoho CRM entity object, while BulkAPIResponse.BulkData would return a list of Zoho CRM entity objects.
- FileAPIResponse has two defined methods namely FileAPIResponse.GetFileName() which returns the name of the file that is downloaded and FileAPIResponse.GetFileAsStream() that gives the file content as InputStream.
Note
BulkAPIResponse is a generic class. Hence, to get the records, the corresponding type has to be used.
- "ZCRMModule module = ZCRMModule.GetInstance("Contacts");
- BulkAPIResponse<ZCRMRecord> response = module.GetRecords();
- List<ZCRMRecord> records = response.BulkData;"
Other than data, these response wrapper objects have the following properties:
ResponseHeaders - remaining API counts for the present day/window and time elapsed for the present window reset. It is available thorugh
- response.GetResponseHeaders()
ResponseInfo - any other information, if provided by the API, in addition to the actual data.
List<EntityResponse> - status of individual entities in a bulk API. For example: an insert records API may partially fail because of a few records. This dictionary gives the individual records’ creation status. It is available through:
- response.BulkEntitiesResponse
Check Exceptions
All unexpected behaviors like faulty API responses, SDK anomalies are handled by the SDK and are thrown only as a single exception — ZCRMException. Hence, it's enough to catch this exception alone in the client app code.