Pregunta

I have a RESTful web service with this format:

/users?age={age}

As it is defined, the web service works whether I add age parameter or not. So both examples are correct:

/users

or

/users?age=18

The amplify's request definition:

amplify.request.define( "usersService", "ajax", {
  url: "/users",
  type: "GET",
  data: {age : "{age}"}
});

Invocation that works:

var myAge = 18;
amplify.request("usersService", {age : myAge});

Result is:

GET /users?age=18 
Response code: 200 OK

Invocation that does not work:

var myAge = null;
amplify.request("usersService", {age : myAge});

Result is:

GET /users?age=
Response code: 400 BAD REQUEST

The correct result I was expecting when age is not defined is:

GET/users
Response code: 200 OK

Any idea how to make this example works?

Thanks in advance. Regards Neuquino

¿Fue útil?

Solución 2

The solution was not to define the "data" in request.define and adding or not the age attribute to the invocation.

var input = null;
if(myAge != null){
  input.age = myAge
}
amplify.request("usersService",input);


amplify.request.define( "usersService", "ajax", {
  url: "/users",
  type: "GET",    
});

input is merged in the body, so if is empty, nothing is sent.

Otros consejos

Try:

amplify.request("usersService", {});

amplify.request("usersService");

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top