zerocool87 zerocool87 - 1 month ago 12
reST (reStructuredText) Question

Backand.com - Random error 404 during REST API

for one web app I'm using Backand.com as MBAAS .

I created a data model and linked all tables.

If I query the default REST APIs there is no problem at all, however if I try to call custom action or custom query the server randomly answer with error 404 not found....

For example I've this custom action named: getCommentsByEvent

'use strict';
function backandCallback(userInput, dbRow, parameters, userProfile) {
// write your code here
return $http ({
method: 'GET',
url: CONSTS.apiUrl + '/1/query/data/getCommentsByEvent',
params: {
parameters: {
event_id: {{event_id}}
}
},
headers: {"Authorization": userProfile.token}
});

}


From the web App I use this code to call it via REST

service.commentsByEvent = function(p, s, r) {
$http({
method: 'GET',
url: Backand.getApiUrl() + '/1/objects/action/comments/?name=getCommentsByEvent',
params: {
parameters: {
event_id: p.eventId
}
}
}).then(s, r);
};


The custom action is written correctly because if I try to call it directly from test page of Backand.com it works without any problem, however if I try from my web app 80% of the time it does not work, 20% it works

This is the error:


Object {data: "Action not found, or is not on demand", status: 404, config: Object, statusText: "Not Found"}


Just to know:
- the action does not have security profile or role or others;
- before to call this action web app call the signin API to get the token
- the action does not need the auth token because is public

To call the signin API I made this service:

service.signin = function(email, password) {
//set the app name of Backand. In your app copy this to .config section with hard coded app name
Backand.setAppName($rootScope.appName);
//call Backand for sign in
return Backand.signin(email, password);
};
service.signout = function() {
return Backand.signout();
};


Any idea?

Thanks
Michele

Answer

Fixed!

It was a very dummy issue related with the "App name" created on Backand.com website....

On Backand.com I created an app with all name in uppercase like "MYAPP" so when I configured the SDK on Angular I wrote

Backand.setAppName("MYAPP);

However Backand.com display the same name on the website, but during the configuration it require a LOWERCASE ONLY name! Nobody, even in customer care, knew this requirements so it was very difficult to understand how to fix... Yesterday I did a try in this way and it worked...

Backand.setAppName("myapp");

To sum up, if you have an error 404 and the URL is correct, there is no authentication issue check if the APP NAME is ONLY LOWERCASE.

Comments