java - started - Al pasar la lista de primitivas encuadradas a Google Cloud Endpoint
getting started with endpoints frameworks on app engine (2)
Agregue la anotación @Nullable a su método, que convertirá su parámetro de tipo colección de una ruta en un parámetro de consulta.
https://developers.google.com/appengine/docs/java/endpoints/annotations#nullable
Estoy luchando con las listas como parámetros de método en Google Cloud Endpoints.
La documentación dice que
Los tipos de parámetros admitidos son los siguientes:
- java.util.Collection de un tipo de parámetro
Intenté hacerlo de esta manera, pero simplemente no funciona. Método de punto final básico:
@ApiMethod(name = "testMethod", httpMethod = HttpMethod.POST)
public void testMethod(@Named("longList") List<Long> longList) {
for (Long aLong : longList) {
if (aLong < 5) {
throw new IllegalArgumentException("You can''t do it");
}
}
}
Cuando ejecuto este método usando API Exploler, la URL generada es:
POST http://localhost:8080/_ah/api/billEndpoint/v1/testMethod?longList=5&longList=6
Y el método se ejecuta correctamente.
Pero cuando se usa la biblioteca de Android, la url se cambia a:
http://APP_ENGINE_BACKEND:8080/_ah/api/billEndpoint/v1/testMethod/5,6
y el código de retorno 404 del punto final.
Es posible tener Lista como parámetro de método y si es lo que estoy haciendo mal?
Una forma más directa es agregar una propiedad de ruta a la anotación API_METHOD y no incluir el parámetro List en la ruta. Como se indica aquí : "Si se especifica la ruta, los parámetros pueden hacerse parámetros de consulta al no incluirlos en la ruta"
En tu caso, debería verse así:
@ApiMethod (name = "testMethod", path = "testMethod" httpMethod = HttpMethod.POST)