从Web应用程序(java / jsp)端点调用google api explorer方法

时间:2014-06-25 11:08:39

标签: javascript jsp google-app-engine google-cloud-endpoints google-cloud-datastore

我想从我的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()”是否正确?

1 个答案:

答案 0 :(得分:1)

Google Cloud Endpoints是加速后端服务开发的好方法。它允许您轻松发布服务,还有助于使用Android或iOS应用等不同技术访问这些服务。无论如何,它仍然遵循一些标准,如REST / JSON。那就是说,让我试着回答我们的问题:

Q1:您没有必要使用javascript库来访问该服务。您可以使用您想要的几乎任何客户端来调用该服务。只需对您的服务进行REST调用即可。

Q2:我会改变一些事情......我认为你应该考虑的最重要的改变是改变你的结果数据结构。您将返回一个字符串列表,可以是电子邮件,日期,卡路里等。您可以创建具有所有这些属性的POJO,并使用Jackson或Gson将该POJO序列化为JSON。您的结果将是一个包含多个条目的JSON。在实际应用程序中,您可能还需要创建一个DAO来封装对数据存储区的数据访问,而不是将此代码放在API层中。我希望保持API层尽可能薄。

祝你好运!