2011-09-06 94 views
7

我是GAE,JSON,REST和一般网站的新手。我有一个非常简单的GWT/GAE数据存储,我想用它来更新我编写的Android应用程序中的数据。经过一番研究,似乎一个很好的方法是创建一个RESTful Web服务,我的Android应用程序将通过发送JSON格式数据的HTTP请求进行访问。简单的GAE Java JSON REST服务器

我一直在寻找一种方法来做到这一点,似乎有很多方法,主要是使用第三方库。有这么多,作为初学者很难明智地选择。另外,我的问题非常简单,以至于我们有机会了解在GAE上创建RESTful Web服务和JSON的基础知识。它所需要做的就是从URL中返回JSON数据 - 不创建,不更新,不删除。

我想象一个简单的Java代码示例或教程比实现我的目标更有意义,而不是学习复杂的库。有没有人知道一个简单的例子或教程向我发送正确的方向?

谢谢。

没有蛇鲨请

== 更新:

在GreetingServiceImpl的的doGet @Override是来自精灵,我说:

// super.doGet(req, resp); 
PrintWriter out = resp.getWriter(); 
out.println("Hello World"); 

这似乎是工作。这是简单的吗?我可以修改这段代码来生成我的JSON输出,而不是“Hello World”字符串,我完成了吗?

回答

3

你的问题是一种通用的(无魅意),所以我的答案是普通了。尽管我的答案是一般的,但信息应该让你指出正确的方向。如果您的问题变得更具体,请编辑您的原始问题或询问另一个问题是否足够具体。

我会说最简单的方法来获取Eclipse,并使用GAE Eclipse插件(如果您还没有)。

按照说明此处安装,创建和运行一个项目:

http://code.google.com/appengine/docs/java/tools/eclipse.html

一旦你完成了这一切,在你的servlet,改写doGet方法使用您有任何代码打你的数据存储。一旦你有了你想从你的数据存储中获取对象的代码,我会使用GSON将结果对象序列化为JSON。 http://code.google.com/p/google-gson/

同样,这不是所有你需要的信息。随意编辑你的问题或评论,并要求提供更多具体信息。另外,你提到你一直在寻找其他第三方库来做到这一点。在这里小心点。你必须记住,如果你使用的是谷歌应用引擎,当你部署它时,本地工作的东西可能不起作用。这有点不方便,但它可以让Google简化应用引擎并提供尽可能多的免费托管服务。在Java的应用程序引擎环境中已经进行了战斗测试的第三方库列表;但我无法通过粗略的谷歌搜索找到它。尽管我知道它在应用程序引擎文档中的某处。而且,对于它的价值,我在应用程序引擎中对GSON进行了一次小型烟雾测试,它似乎工作正常。

+0

谢谢。我一直在使用Eclipse。在从向导生成的代码中,我看到:public class GreetingServiceImpl extends RemoteServiceServlet implements GreetingService {0} {0} {0} {0}的doGet“? – Mitch

+0

我加// // super.doGet(req,resp); \t \t PrintWriter的OUT = resp.getWriter(); \t \t通过out.println( “Hello World” 的); – Mitch

+0

是的,我的问题在某些方面是普遍的,但在其他方面非常具体。我正在寻找一个非常具体的例子或教程。然而,一般情况下,对什么可以起作用提出建议也是值得赞赏的。 – Mitch

2

尝试使用JSONEngine-这个库创建存储/检索/更新/方便JSON API的删除在谷歌App Engine的JSON数据。每个JSON文件访问可以设置为特定的用户/谷歌电子邮件ID /只开放ID电子邮件ID只(如谷歌/雅虎/ AOL)...

了解更多关于code.google.com/p这个库/ jsonengine/

0

尝试新的Google Cloud Endpoints。他们仍然是实验性的,但据我所知,他们完美地工作。

而且他们都非常容易,因为你定义使用简单的目的。如果您使用的是Google Eclipse Plugin,则只需创建一个JDO persitent类,该插件会自动为您生成端点。请参阅Google Eclipse Plugin支持Google CLoud Endpoints here