Не мога да намеря отговор в документите на Google. Както разбирам от документите, анотацията @Api се прилага към клас, за да покаже, че е част от API на крайната точка, а @ApiMethod след това показва кои методи от този клас са част от API на облака.
Въпреки това, дори ако даден метод не е анотиран с @ApiMethod, Google App Engine Cloud Endpoints Builder пак включва този метод като част от Cloud API.
Как мога да изключа метод от API? Ако не е възможно, добра алтернатива ли е да се предадат получените параметри на API към отделен обект (който е поле на пояснения клас), който съдържа необходимия метод?
Включвам следния код, който е клас, анотиран с @Api за пояснение (вижте коментара в горната част на метода ggetStr):
package com.barcodeapp.www.app;
import java.util.ArrayList;
import java.util.List;
import com.google.api.server.spi.config.Api;
@Api(
name = "cetest",
version = "v1",
scopes = {EndpointsConstants.EMAIL_SCOPE},
clientIds = {EndpointsConstants.WEB_CLIENT_ID, EndpointsConstants.ANDROID_CLIENT_ID, com.google.api.server.spi.Constant.API_EXPLORER_CLIENT_ID},
audiences = {EndpointsConstants.ANDROID_AUDIENCE}
)
public class CloudTest {
public List<String> list() {
List<String> strs = new ArrayList<String>();
strs.add("a"); strs.add("b");
return strs;
}
/* THE FOLLOWING METHOD NEEDS TO BE EXCLUDED FROM CLOUD API */
public String ggetStr() {
return "abc";
}
}
РЕДАКТИРАНЕ: Включих библиотечния .jar файл в папката WAR/WEB-INF/lib - няма разлика.
По-долу са двата класа за пълнота:
package com.cloudtest.lib;
public class ClassInLibProj {
}
и
package com.cloudtest.my;
public class ClassInLocalProj {
}
Благодаря.