我想从我的google explorer api调用我的方法。我有一个带端点的Web应用程序客户端(java / jsp)。我的方法:
// Method to fetch result from datastore with email and date param
@ApiMethod(name = "greetings.getDataNewSeance", httpMethod = "get")
public List getDataInStore(@Named("Email") String email, @Named("Date") String date) {
List<String> listNewSeance = new ArrayList<String>();
Query q = new Query("NewSeance");
q.addFilter("Email", Query.FilterOperator.EQUAL, email);
q.addFilter("Date", Query.FilterOperator.EQUAL, date);
PreparedQuery pq = datastore.prepare(q);
for (Entity entity : pq.asIterable())
{
listNewSeance.add((String)entity.getProperty("Email"));
listNewSeance.add((String)entity.getProperty("Date"));
listNewSeance.add((String)entity.getProperty("Calories"));
listNewSeance.add((String)entity.getProperty("Distance"));
listNewSeance.add((String)entity.getProperty("MeterMin"));
listNewSeance.add((String)entity.getProperty("Time"));
}
return listNewSeance;
}
Q1: 我是否必须使用本教程中的javascript调用Using Endpoints in a JavaScript Client
或者我可以在java / jsp中执行此操作,就像在Android客户端中一样吗?
Q2: 我的方法“getDataNewSeance()”是否正确?
答案 0 :(得分:1)
Google Cloud Endpoints是加速后端服务开发的好方法。它允许您轻松发布服务,还有助于使用Android或iOS应用等不同技术访问这些服务。无论如何,它仍然遵循一些标准,如REST / JSON。那就是说,让我试着回答我们的问题:
Q1:您没有必要使用javascript库来访问该服务。您可以使用您想要的几乎任何客户端来调用该服务。只需对您的服务进行REST调用即可。
Q2:我会改变一些事情......我认为你应该考虑的最重要的改变是改变你的结果数据结构。您将返回一个字符串列表,可以是电子邮件,日期,卡路里等。您可以创建具有所有这些属性的POJO,并使用Jackson或Gson将该POJO序列化为JSON。您的结果将是一个包含多个条目的JSON。在实际应用程序中,您可能还需要创建一个DAO来封装对数据存储区的数据访问,而不是将此代码放在API层中。我希望保持API层尽可能薄。 祝你好运!