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(Attachment_Id) 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 through:
- 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.