2011-09-06 95 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