Through Cloud Code service a developer can deploy and run their custom code on our servers without worrying about scalability, security and reliability. App42 Cloud Code platform applies multiple securities and scalability features to your code on the fly. Since any developer can upload Custom/Cloud Code, the lifecycle of the cloud code is managed in sandbox by the platform, which in turn puts some guidelines on the developer.
The code can be used to put validation and custom logic on developer’s data that developers want to run on the server instead of client side. Custom/Cloud Code can include App42 APIs inside it, and can be used to aggregate/mash two or more App42 services into their own cloud code.
Cloud code allows to create their own APIs and hence extend the rich set of 750+ APIs that App42 already offers. It can be scheduled for any future date, time and timezone and can be run from the API itself as well as AppHQ Management Console. Once the code is deployed, the developer can access deployed service using REST or thought native SDKs supported by App42.
import com.shephertz.app42.paas.sdk.android.App42API; import com.shephertz.app42.paas.sdk.android.App42Response; import com.shephertz.app42.paas.sdk.android.App42Exception; import com.shephertz.app42.paas.sdk.android.App42BadParameterException; import com.shephertz.app42.paas.sdk.android.App42NotFoundException; import com.shephertz.app42.paas.sdk.android.customcode.CustomCodeService;using com.shephertz.app42.paas.sdk.windows; using com.shephertz.app42.paas.sdk.windows.customcode;#import "Shephertz_App42_iOS_API/Shephertz_App42_iOS_API.h"#import<Shephertz_App42_iOS_API/Shephertz_App42_iOS_API.h>import com.shephertz.app42.paas.sdk.java.App42API; import com.shephertz.app42.paas.sdk.java.App42Response; import com.shephertz.app42.paas.sdk.java.App42Exception; import com.shephertz.app42.paas.sdk.java.App42BadParameterException; import com.shephertz.app42.paas.sdk.java.App42NotFoundException; import com.shephertz.app42.paas.sdk.java.customcode.CustomCodeService;using com.shephertz.app42.paas.sdk.csharp; using com.shephertz.app42.paas.sdk.csharp.customcode;<script type="text/javascript" src="App42-all-x.x.x.min.js"></script>local App42API = require("App42-Lua-API.App42API") local JSON = require("App42-Lua-API.JSON")#include "App42API.h"using com.shephertz.app42.paas.sdk.csharp; using com.shephertz.app42.paas.sdk.csharp.customcode;Not Available#include "App42API.h"Not Availableimport com.shephertz.app42.paas.sdk.as3.App42CallBack; import com.shephertz.app42.paas.sdk.as3.App42Exception; import com.shephertz.app42.paas.sdk.as3.ServiceAPI; import com.shephertz.app42.paas.sdk.as3.customcode.CustomCodeService; import com.shephertz.app42.paas.sdk.as3.util.Util;Coming Soonimport com.shephertz.app42.paas.sdk.jme.App42API; import com.shephertz.app42.paas.sdk.jme.App42Response; import com.shephertz.app42.paas.sdk.jme.App42Exception; import com.shephertz.app42.paas.sdk.jme.App42BadParameterException; import com.shephertz.app42.paas.sdk.jme.App42NotFoundException; import com.shephertz.app42.paas.sdk.jme.customcode.CustomCodeService;
In order to use the various functions available in a specific API, a developer has to initialize with App42API by passing the apiKey and the secretKey which will become available after the app creation from AppHQ dashboard.
Required Parameters
apiKey - The Application key given when the app was created.
secretKey - The secret key corresponding to the application key given when the app was created.
App42API.initialize("ANDROID_APPLICATION_CONTEXT","API_KEY","SECRET_KEY");App42API.Initialize("API_KEY","SECRET_KEY");[App42API initializeWithAPIKey:@"APP_KEY" andSecretKey:@"SECRET_KEY"];App42API.initializeWithAPIKey("API_KEY", andSecretKey:"SECRET_KEY")App42API.initialize("API_KEY","SECRET_KEY");App42API.Initialize("API_KEY","SECRET_KEY");App42.initialize("API_KEY","SECRET_KEY");App42API:initialize("API_KEY","SECRET_KEY")App42API::Initialize("API_KEY", "SECRET_KEY");App42API.Initialize("API_KEY","SECRET_KEY");Not AvailableApp42API::Initialize("API_KEY", "SECRET_KEY");Not Availablevar api:ServiceAPI = new ServiceAPI("API_KEY","SECRET_KEY");Coming SoonApp42API.initialize("API_KEY","SECRET_KEY");
After initialization, the developer will have to call the buildXXXService method on App42API to get the instance of the particular API that they wish to build. For example, to build an instance of CustomCodeService, buildCustomCodeService() method needs to be called.
CustomCodeService customCodeService = App42API.buildCustomCodeService();CustomCodeService customCodeService = App42API.BuildCustomCodeService();CustomCodeService *customCodeService = [App42API buildCustomCodeService];let customcodeService = App42API.buildCustomCodeService() as? CustomCodeServiceCustomCodeService customCodeService = App42API.buildCustomCodeService();CustomCodeService customCodeService = App42API.BuildCustomCodeService();var customCodeService = new App42CustomCodeService();local customCodeService = App42API:buildCustomCodeService()CustomCodeService *customCodeService = App42API::BuildCustomCodeService();CustomCodeService customCodeService = App42API.BuildCustomCodeService();CustomCodeService *customCodeService = App42API::BuildCustomCodeService();Not AvailableNot Availablevar customcodeService:CustomCodeService = api.buildCustomCodeService();Coming SoonCustomCodeService customCodeService = App42API.buildCustomCodeService();
Deploy Custom code in App42 Cloud.
Required Parameters
name - Name of Custom Code Service to be deployed.
jarFilePath - Custom code jar file path.
String nameOfCustomCodeService = "DEPLOYED_CUSTOM_CODE_NAME"; String jarFilePath = "JAR FILE PATH"; App42API.initialize("ANDROID_APPLICATION_CONTEXT","API_KEY","SECRET_KEY"); CustomCodeService customCodeService = App42API.buildCustomCodeService(); customCode.deployJarFile(nameOfCustomCodeService, jarFilePath,new App42CallBack() { public void onSuccess(Object response) { String res = (String)response; System.out.println("response is " + res) ; } public void onException(Exception ex) { System.out.println("Exception Message"+ex.getMessage()); } });Coming SoonNot AvailableComing SoonString nameOfCustomCodeService = "DEPLOYED_CUSTOM_CODE_NAME"; String jarFilePath = "JAR FILE PATH"; App42API.initialize("API_KEY","SECRET_KEY"); CustomCodeService customCodeService = App42API.buildCustomCodeService(); String res = customCodeService.deployJarFile(nameOfCustomCodeService, jarFilePath); System.out.println("response is " + res) ;Coming SoonNot AvailableComing SoonNot AvailableComing SoonNot AvailableNot AvailableNot AvailableComing SoonComing SoonComing Soon
Undeploy Java Code deployed in App42 Cloud.
Required Parameters
name - Name of Custom Code Service to be undeployed.
String nameOfCustomCodeService = "DEPLOYED_CUSTOM_CODE_NAME"; App42API.initialize("ANDROID_APPLICATION_CONTEXT","API_KEY","SECRET_KEY"); CustomCodeService customCodeService = App42API.buildCustomCodeService(); customCode.undeployJarFile(nameOfCustomCodeService, new App42CallBack() { public void onSuccess(Object response) { String res = (String)response; System.out.println("response is " + res); } public void onException(Exception ex) { System.out.println("Exception Message"+ex.getMessage()); } });Not AvailableNot AvailableComing SoonString nameOfCustomCodeService = "DEPLOYED_CUSTOM_CODE_NAME"; App42API.initialize("API_KEY","SECRET_KEY"); CustomCodeService customCodeService = App42API.buildCustomCodeService(); String res = customCodeService.undeployJarFile(nameOfCustomCodeService); System.out.println("response is " + res);Not AvailableNot AvailableComing SoonNot AvailableNot AvailableNot AvailableNot AvailableNot AvailableComing SoonComing SoonNot Available
Run custom code deployed in the App42 Cloud.
Required Parameters
name - Name of deployed CustomCode Service.
jsonBody - Request Body in JSON format.
String name = "DEPLOYED_CUSTOM_CODE_NAME"; JSONObject jsonBody = new JSONObject(); jsonBody.put("Company", "Shephertz"); App42API.initialize("ANDROID_APPLICATION_CONTEXT","API_KEY","SECRET_KEY"); CustomCodeService customCodeService = App42API.buildCustomCodeService(); customCode.runJavaCode(name,jsonBody,new App42CallBack() { public void onSuccess(Object response) { JSONObject res= (JSONObject)response; System.out.println("response is " + res) ; } public void onException(Exception ex) { System.out.println("Exception Message"+ex.getMessage()); } });String name = "DEPLOYED_CUSTOM_CODE_NAME"; JObject jsonBody = new JObject(); jsonBody.Add("Company", "Shephertz"); App42API.Initialize("API_KEY","SECRET_KEY"); CustomCodeService customCodeService = App42API.BuildCustomCodeService(); customCodeService.RunJavaCode(name, jsonBody, new Callback()); public class Callback : App42Callback { public void OnException(App42Exception exception) { Console.WriteLine("Exception Message : " + exception); } public void OnSuccess(Object response) { JObject json = (JObject) response; String jsonResponse = json.ToString(); } }NSString *name = @"DEPLOYED_CUSTOM_CODE_NAME"; NSDictionary *requestBody = [NSDictionary dictionaryWithObjectsAndKeys:@"Company",@"Shephertz", nil]; [App42API initializeWithAPIKey:@"APP_KEY" andSecretKey:@"SECRET_KEY"]; CustomCodeService *customCodeService = [App42API buildCustomCodeService]; [customCodeService runJavaCode:name requestBody:requestBody completionBlock:^(BOOL success, id responseObj, App42Exception *exception) { if (success) { NSLog(@"Response is = %@",responseObj); } else { NSLog(@"Exception = %@",[exception reason]); NSLog(@"HTTP error Code = %d",[exception httpErrorCode]); NSLog(@"App Error Code = %d",[exception appErrorCode]); NSLog(@"User Info = %@",[exception userInfo]); } }];let name = "DEPLOYED_CUSTOM_CODE_NAME" let requestBody = NSMutableDictionary() requestBody["Company"] = "Shephertz" App42API.initializeWithAPIKey("API_KEY" andSecretKey:"SECRET_KEY") let customCodeService = App42API.buildCustomCodeService() as? CustomCodeService customCodeService?.runJavaCode(name, requestBody: requestBody as [NSObject : AnyObject], completionBlock: { (success, response, exception) -> Void in if(success) { let responseString = response as! NSString NSLog("Success Response is %@", responseString) } else { NSLog("%@", exception.reason!) NSLog("%d", exception.appErrorCode) NSLog("%d", exception.httpErrorCode) NSLog("%@", exception.userInfo!) } })String name = "DEPLOYED_CUSTOM_CODE_NAME"; JSONObject jsonBody = new JSONObject(); jsonBody.put("Company", "Shephertz"); App42API.initialize("API_KEY","SECRET_KEY"); CustomCodeService customCodeService = App42API.buildCustomCodeService(); JSONObject response = customCodeService.runJavaCode(name, jsonBody); System.out.println("response is " + response);String name = "DEPLOYED_CUSTOM_CODE_NAME"; JSONClass jsonBody = new JSONClass (); jsonBody.Add("Company", "Shephertz"); App42Log.SetDebug(true); //Print output in your editor console App42API.Initialize("API_KEY","SECRET_KEY"); CustomCodeService customCodeService = App42API.BuildCustomCodeService(); customCodeService.RunJavaCode(name, jsonBody, new UnityCallBack()); public class UnityCallBack : App42CallBack { public void OnSuccess(object response) { JSONClass objecti = (JSONClass )response; App42Log.Console("objectName is : " + objecti["name"]); App42Log.Console("Success : " + response); } public void OnException(Exception e) { App42Log.Console("Exception : " + e); } }var name = "DEPLOYED_CUSTOM_CODE_NAME"; var jsonBody = {"Company":"Shephertz"}; var emailId = "nick@shephertz.co.in"; var result; App42.initialize("API_KEY", "SECRET_KEY"); var customCodeService = new App42CustomCodeService(); customCodeService.runJavaCode(name, jsonBody, { success: function (object) { var customCodeObj = JSON.parse(object); console.log("Success Response " , customCodeObj) }, error: function (error) { } });local name = "DEPLOYED_CUSTOM_CODE_NAME" local jsonBody = {} jsonBody.Company = "Shephertz" local App42CallBack = {} App42API:initialize("API_KEY","SECRET_KEY") local customCodeService = App42API:buildCustomCodeService() customCodeService:runJavaCode(name, jsonBody,App42CallBack) function App42CallBack:onSuccess(object) print(JSON:encode(object)) end function App42CallBack:onException(exception) print("Message is : "..exception:getMessage()) print("App Error code is : "..exception:getAppErrorCode()) print("Http Error code is "..exception:getHttpErrorCode()) print("Detail is : "..exception:getDetails()) endconst char* name = "DEPLOYED_CUSTOM_CODE_NAME"; App42Object *object = new App42Object(); object->setObject("Company", "Shephertz"); App42API::Initialize("API_KEY", "SECRET_KEY"); CustomCodeService *customCodeService = App42API::BuildCustomCodeService(); customCodeService->RunJavaCode(name, object, app42callback(Sample_Class::onCustomCodeServiceRequestCompleted, this)); void Sample_Class::onCustomCodeServiceRequestCompleted(void *response) { App42CustomCodeResponse *customCodeResponse = (App42CustomCodeResponse*)response; if(customCodeResponse->isSuccess) { printf("\n code=%d",customCodeResponse->getCode()); printf("\n isSuccess=%d",customCodeResponse->isSuccess); printf("\n Response Body=%s",customCodeResponse->getBody().c_str()); } else { printf("\nerrordetails:%s",customCodeResponse->errorDetails.c_str()); printf("\nerrorMessage:%s",customCodeResponse->errorMessage.c_str()); printf("\nappErrorCode:%d",customCodeResponse->appErrorCode); printf("\nhttpErrorCode:%d",customCodeResponse->httpErrorCode); } }String name = "DEPLOYED_CUSTOM_CODE_NAME"; JSONClass jsonBody = new JSONClass (); jsonBody.Add("Company", "Shephertz"); App42API.Initialize("API_KEY","SECRET_KEY"); CustomCodeService customCodeService = App42API.BuildCustomCodeService(); JSONClass response = customCodeService.RunJavaCode(name, jsonBody); Console.WriteLine("response is " + response);const char* name = "DEPLOYED_CUSTOM_CODE_NAME"; App42Object *object = new App42Object(); object->setObject("Company", "Shephertz"); App42API::Initialize("API_KEY", "SECRET_KEY"); CustomCodeService *customCodeService = App42API::BuildCustomCodeService(); customCodeService->RunJavaCode(name, object, this, app42callfuncND_selector(Sample_Class::onCustomCodeServiceRequestCompleted)); void Sample_Class::onCustomCodeServiceRequestCompleted(App42CallBack *sender, void *response) { App42CustomCodeResponse *customCodeResponse = (App42CustomCodeResponse*)response; if(customCodeResponse->isSuccess) { printf("\n code=%d",customCodeResponse->getCode()); printf("\n isSuccess=%d",customCodeResponse->isSuccess); printf("\n Response Body=%s",customCodeResponse->getBody().c_str()); } else { printf("\nerrordetails:%s",customCodeResponse->errorDetails.c_str()); printf("\nerrorMessage:%s",customCodeResponse->errorMessage.c_str()); printf("\nappErrorCode:%d",customCodeResponse->appErrorCode); printf("\nhttpErrorCode:%d",customCodeResponse->httpErrorCode); } }Not AvailableNot Availablevar name:String = "DEPLOYED_CUSTOM_CODE_NAME"; var jsonObject:Object = new Object; jsonObject.Company = "Shephertz"; var api:ServiceAPI = new ServiceAPI("API_KEY","SECRET_KEY"); var customcodeService:CustomCodeService = api.buildCustomCodeService(); customcodeService.runJavaCode(name,jsonObject,new callback()); public class callback implements App42CallBack { public function onException(exception:App42Exception):void { trace("Exception Message " + exception); } public function onSuccess(response:Object):void { trace("Response is :" + Util.toString(response)); trace("Object Name is:" + Util.toString(response.name)); } }Coming SoonString name = "DEPLOYED_CUSTOM_CODE_NAME"; JSONObject jsonBody = new JSONObject(); jsonBody.put("Company", "Shephertz"); App42API.initialize("API_KEY","SECRET_KEY"); CustomCodeService customCodeService = App42API.buildCustomCodeService(); JSONObject response = customCodeService.runJavaCode(name, jsonBody); System.out.println("response is " + response);
The functions available under Custom Code API can throw some exceptions in abnormal conditions. For example, if you are trying to deploy the custom code with the name that already exists, you will get an appErrorCode as 1902 stating that Invalid JSON in the request body.
String name = "DEPLOYED_CUSTOM_CODE_NAME"; JSONObject jsonBody = new JSONObject(); jsonBody.put("Company", "Shephertz"); App42API.initialize("ANDROID_APPLICATION_CONTEXT","API_KEY","SECRET_KEY"); CustomCodeService customCodeService = App42API.buildCustomCodeService(); customCode.runJavaCode(name , jsonBody,new App42CallBack() { public void onSuccess(Object response) { JSONObject res= (JSONObject)response; System.out.println("response is " + res) ; } public void onException(Exception ex) { App42Exception exception = (App42Exception)ex; int appErrorCode = exception.getAppErrorCode(); int httpErrorCode = exception.getHttpErrorCode(); if(exception.getAppErrorCode() == 1902) { //Handle here for Bad Request (Invalid JSON in request body.) } else if(exception.getAppErrorCode() == 1900) { //Handle here for Bad Request (Jar File contains the invalid content or class usage that is not allowed for deployment) //Example of it using System class or putting .sh/.dll file inside jar file } else if(exception.getAppErrorCode() == 1401) { // handle here for Client is not authorized } else if(exception.getAppErrorCode() == 1500) { // handle here for Internal Server Error } String jsonText = ex.getMessage(); /* returns the Exception text in JSON format. (as shown below)*/ } });String name = "DEPLOYED_CUSTOM_CODE_NAME"; JObject jsonBody = new JObject(); jsonBody.Add("Company", "Shephertz"); App42API.Initialize("API_KEY","SECRET_KEY"); CustomCodeService customCodeService = App42API.BuildCustomCodeService(); customCodeService.RunJavaCode(name, jsonBody, new Callback()); public class Callback : App42Callback { public void OnException(App42Exception exception) { Console.WriteLine("Exception Message : " + exception); int appErrorCode = ex.GetAppErrorCode(); int httpErrorCode = ex.GetHttpErrorCode(); if(ex.getAppErrorCode() == 1902) { //Handle here for Bad Request (Invalid JSON in request body.) } else if(ex.getAppErrorCode() == 1900) { //Handle here for Bad Request (Jar File contains the invalid content or class usage that is not allowed for deployment) //Example of it using System class or putting .sh/.dll file inside jar file } else if(ex.getAppErrorCode() == 1401) { // handle here for Client is not authorized } else if(ex.getAppErrorCode() == 1500) { // handle here for Internal Server Error } String jsonText = ex.GetMessage(); } public void OnSuccess(Object response) { JObject json = (JObject) response; Console.WriteLine("response is : " + json); } }NSString *name = @"DEPLOYED_CUSTOM_CODE_NAME"; NSDictionary *requestBody = [NSDictionary dictionaryWithObjectsAndKeys:@"John",@"name", nil]; [App42API initializeWithAPIKey:@"APP_KEY" andSecretKey:@"SECRET_KEY"]; CustomCodeService *customCodeService = [App42API buildCustomCodeService]; [customCodeService runJavaCode:name requestBody:requestBody completionBlock:^(BOOL success, id responseObj, App42Exception *exception) { if (success) { App42Response *response =(App42Response*)responseObj; NSString *jsonResponse = [response toString]; } else { int appErrorCode = exception.appErrorCode; int httpErrorCode = exception.httpErrorCode; if(appErrorCode == 1902) { //Handle here for Bad Request (Invalid JSON in request body.) } else if(appErrorCode == 1900) { //Handle here for Bad Request (Jar File contains the invalid content or class usage that is not allowed for deployment) //Example of it using System class or putting .sh/.dll file inside jar file } else if(appErrorCode == 1401){ // handle here for Client is not authorized } else if(appErrorCode == 1500){ // handle here for Internal Server Error } NSString *jsonText = exception.reason; } }];coming soonString name = "DEPLOYED_CUSTOM_CODE_NAME"; JSONObject jsonBody = new JSONObject(); jsonBody.put("Company", "Shephertz"); App42API.initialize("API_KEY","SECRET_KEY"); CustomCodeService customCodeService = App42API.buildCustomCodeService(); try { customCodeService.runJavaCode(name, jsonBody); } catch (App42Exception ex) { int appErrorCode = ex.getAppErrorCode(); int httpErrorCode = ex.getHttpErrorCode(); if(ex.getAppErrorCode() == 1902) { //Handle here for Bad Request (Invalid JSON in request body.) } else if(ex.getAppErrorCode() == 1900) { //Handle here for Bad Request (Jar File contains the invalid content or class usage that is not allowed for deployment) //Example of it using System class or putting .sh/.dll file inside jar file } else if(ex.getAppErrorCode() == 1401) { // handle here for Client is not authorized } else if(ex.getAppErrorCode() == 1500) { // handle here for Internal Server Error } String jsonText = ex.getMessage(); /* returns the Exception text in JSON format. (as shown below)*/ }String name = "DEPLOYED_CUSTOM_CODE_NAME"; JSONClass jsonBody = new JSONClass (); jsonBody.Add("Company", "Shephertz"); App42Log.SetDebug(true); //Print output in your editor console App42API.Initialize("API_KEY","SECRET_KEY"); CustomCodeService customCodeService = App42API.BuildCustomCodeService(); customCodeService.RunJavaCode(name, jsonBody, new UnityCallBack()); public class UnityCallBack : App42CallBack { public void OnException(Exception e) { App42Exception ex = (App42Exception)e; int appErrorCode = ex.GetAppErrorCode(); int httpErrorCode = ex.GetHttpErrorCode(); if(appErrorCode == 1902) { //Handle here for Bad Request (Invalid JSON in request body.) } else if(appErrorCode == 1900) { //Handle here for Bad Request (Jar File contains the invalid content or class usage that is not allowed for deployment) //Example of it using System class or putting .sh/.dll file inside jar file } else if(appErrorCode == 1401) { // handle here for Client is not authorized } else if(appErrorCode == 1500) { // handle here for Internal Server Error } String jsonText = ex.GetMessage(); } public void OnSuccess(object response) { App42Log.Console("Response is :" + response.ToString()); } }Not Availablelocal name = "DEPLOYED_CUSTOM_CODE_NAME" local jsonBody = {} jsonBody.Company = "Shephertz" local App42CallBack = {} App42API:initialize("API_KEY","SECRET_KEY") local customCodeService = App42API:buildCustomCodeService() customCodeService:runJavaCode(name, jsonBody,App42CallBack) function App42CallBack:onSuccess(object) print(object) end function App42CallBack:onException(exception) if exception.getAppErrorCode() == 1902 then -- Handle here for Bad Request (Invalid JSON in request body.) elseif exception.getAppErrorCode() == 1900 then -- Handle here for Bad Request (Jar File contains the invalid content or class usage that is not allowed for deployment) -- Example of it using System class or putting .sh/.dll file inside jar file elseif exception.getAppErrorCode() == 1401 then -- handle here for Client is not authorized elseif exception.getAppErrorCode() == 1500 then -- handle here for Internal Server Error end endconst char* name = "DEPLOYED_CUSTOM_CODE_NAME"; App42Object *object = new App42Object(); object->setObject("Company", "Shephertz"); App42API::Initialize("API_KEY", "SECRET_KEY"); CustomCodeService *customCodeService = App42API::BuildCustomCodeService(); customCodeService->RunJavaCode(name, object, app42callback(Sample_Class::onCustomCodeServiceRequestCompleted, this)); void Sample_Class::onCustomCodeServiceRequestCompleted(void *response) { App42CustomCodeResponse *customCodeResponse = (App42CustomCodeResponse*)response; if(customCodeResponse->isSuccess) { //Handle success response here. } else { printf("\nerrordetails:%s",customCodeResponse->errorDetails.c_str()); printf("\nerrorMessage:%s",customCodeResponse->errorMessage.c_str()); printf("\nappErrorCode:%d",customCodeResponse->appErrorCode); printf("\nhttpErrorCode:%d",customCodeResponse->httpErrorCode); int appErrorCode = customCodeResponse->appErrorCode; if(appErrorCode == 1902) { //Handle here for Bad Request (Invalid JSON in request body.) } else if(appErrorCode == 1900) { //Handle here for Bad Request (Jar File contains the invalid content or class usage that is not allowed for deployment) //Example of it using System class or putting .sh/.dll file inside jar file } else if(appErrorCode == 1401) { // handle here for Client is not authorized } else if(appErrorCode == 1500) { // handle here for Internal Server Error } } }String name = "DEPLOYED_CUSTOM_CODE_NAME"; JSONClass jsonBody = new JSONClass (); jsonBody.Add("Company", "Shephertz"); App42API.Initialize("API_KEY","SECRET_KEY"); CustomCodeService customCodeService = App42API.BuildCustomCodeService(); try { customCodeService.runJavaCode(name, jsonBody); } catch (App42Exception ex) { int appErrorCode = ex.GetAppErrorCode(); int httpErrorCode = ex.GetHttpErrorCode(); if(ex.getAppErrorCode() == 1902) { //Handle here for Bad Request (Invalid JSON in request body.) } else if(ex.getAppErrorCode() == 1900) { //Handle here for Bad Request (Jar File contains the invalid content or class usage that is not allowed for deployment) //Example of it using System class or putting .sh/.dll file inside jar file } else if(ex.getAppErrorCode() == 1401) { // handle here for Client is not authorized } else if(ex.getAppErrorCode() == 1500) { // handle here for Internal Server Error } String jsonText = ex.GetMessage(); /* returns the Exception text in JSON format. (as shown below)*/ }Not AvailableNot AvailableNot Availablevar name:String = "DEPLOYED_CUSTOM_CODE_NAME"; var jsonBody:Object = new Object; jsonBody.Company = "Shephertz"; var api:ServiceAPI = new ServiceAPI("API_KEY","SECRET_KEY"); var customcodeService:CustomCodeService = api.buildCustomCodeService(); customcodeService.runJavaCode(name,jsonBody,new callback()); public class callback implements App42CallBack { public function onException(ex:App42Exception):void { var appErrorCode:int = ex.getAppErrorCode(); var httpErrorCode:int = ex.getHttpErrorCode(); if(ex.getAppErrorCode() == 1902) { //Handle here for Bad Request (Invalid JSON in request body.) } else if(ex.getAppErrorCode() == 1900) { //Handle here for Bad Request (Jar File contains the invalid content or class usage that is not allowed for deployment) //Example of it using System class or putting .sh/.dll file inside jar file } else if(ex.getAppErrorCode() == 1401) { // handle here for Client is not authorized } else if(ex.getAppErrorCode() == 1500) { // handle here for Internal Server Error } } public function onSuccess(response:Object):void { trace("response is : " + response); } }Coming SoonString name = "DEPLOYED_CUSTOM_CODE_NAME"; JSONObject jsonBody = new JSONObject(); jsonBody.put("Company", "Shephertz"); App42API.initialize("API_KEY","SECRET_KEY"); CustomCodeService customCodeService = App42API.buildCustomCodeService(); try { customCodeService.runJavaCode(name, jsonBody); } catch (App42Exception ex) { int appErrorCode = ex.getAppErrorCode(); int httpErrorCode = ex.getHttpErrorCode(); if(ex.getAppErrorCode() == 1902) { //Handle here for Bad Request (Invalid JSON in request body.) } else if(ex.getAppErrorCode() == 1900) { //Handle here for Bad Request (Jar File contains the invalid content or class usage that is not allowed for deployment) //Example of it using System class or putting .sh/.dll file inside jar file } else if(ex.getAppErrorCode() == 1401) { // handle here for Client is not authorized } else if(ex.getAppErrorCode() == 1500) { // handle here for Internal Server Error } String jsonText = ex.getMessage(); /* returns the Exception text in JSON format. (as shown below)*/ }
Functions in Custom API might throw exceptions with following HTTP and Application Error Codes (along with their descriptions):
1400 - BAD REQUEST - The Request parameters are invalid.
1401 - UNAUTHORIZED - Client is not authorized.
1500 - INTERNAL SERVER ERROR - Internal Server Error. Please try again.
1902 - BAD REQUEST - Invalid JSON in request body.
1903 - BAD REQUEST - Application Exception : Will include exception coming from your deployed code. For example, java.lang.NullPointerException.
1904 - BAD REQUEST - Application Exception : Request Execution Time Exceeded.