2011-09-06 41 views
7

Tôi là người mới ở GAE, JSON, REST và web nói chung. Tôi có một kho dữ liệu GWT/GAE rất đơn giản mà tôi muốn sử dụng để cập nhật dữ liệu trong một ứng dụng Android mà tôi đã viết. Sau một số nghiên cứu, có vẻ như một cách hay để làm điều này là tạo một dịch vụ web RESTful mà ứng dụng Android của tôi sẽ truy cập thông qua một yêu cầu HTTP gửi lại dữ liệu định dạng JSON.Máy chủ REST JSON Java đơn giản GAE

Tôi đã tìm cách để thực hiện việc này và dường như có nhiều cách, chủ yếu là sử dụng thư viện của bên thứ ba. Có rất nhiều, rất khó để chọn một cách khôn ngoan như một người mới bắt đầu. Ngoài ra, vấn đề của tôi đơn giản đến nỗi đây sẽ là cơ hội tốt để tìm hiểu những điều cơ bản về tạo một dịch vụ web RESTful và JSON trên GAE. Tất cả những gì cần làm là trả về dữ liệu JSON từ một URL - không tạo, không cập nhật, không xóa.

Tôi tưởng tượng một ví dụ đơn giản hoặc hướng dẫn về mã Java sẽ có ý nghĩa hơn để đạt được mục tiêu của tôi hơn là học một thư viện phức tạp. Có ai biết một ví dụ đơn giản hoặc hướng dẫn để gửi cho tôi đi đúng hướng?

Cảm ơn.

Không Snark Hãy

== Cập nhật:

Trong doGet @ Override của GreetingServiceImpl rằng xuất phát từ thuật sĩ, tôi nói thêm:

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

Điều này dường như làm việc. Nó có thể được đơn giản này? Tôi có thể sửa đổi mã này để tạo đầu ra JSON thay cho chuỗi "Hello World" và tôi đã hoàn thành?

Trả lời

3

bạn đang hỏi là loại nói chung (không Snark dự định) để câu trả lời của tôi là nói chung quá. Mặc dù câu trả lời của tôi là chung, thông tin sẽ giúp bạn chỉ đúng hướng. Nếu câu hỏi của bạn trở nên cụ thể hơn, hãy chỉnh sửa câu hỏi gốc của bạn hoặc hỏi câu hỏi khác nếu câu hỏi đó đủ cụ thể.

Tôi sẽ nói cách dễ nhất để thực hiện việc này là lấy Eclipse và sử dụng plugin Eclipse GAE (nếu bạn chưa có).

Thực hiện theo các hướng dẫn tại đây để cài đặt, tạo và chạy một dự án:

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

Một khi bạn đã làm tất cả những điều này, trong servlet của bạn, viết lại phương pháp doGet sử dụng bất kỳ mã bạn có để truy cập kho dữ liệu của bạn. Một khi bạn có mã mà bạn muốn lấy đối tượng từ kho dữ liệu của mình, tôi sẽ sắp xếp các đối tượng kết quả thành JSON bằng cách sử dụng GSON. http://code.google.com/p/google-gson/

Một lần nữa, đây không phải là tất cả thông tin bạn cần. Vui lòng chỉnh sửa câu hỏi hoặc nhận xét của bạn và yêu cầu thêm thông tin cụ thể. Ngoài ra, bạn đã đề cập bạn cũng đang xem thư viện của bên thứ ba khác để thực hiện việc này. Hãy cẩn thận ở đây. Bạn phải ghi nhớ rằng nếu bạn đang sử dụng công cụ ứng dụng của google, một thứ hoạt động cục bộ có thể không hoạt động khi bạn triển khai nó. Đây là một loại bất tiện nhưng một phần của nó cho phép Google đơn giản hóa công cụ ứng dụng và cung cấp nhiều lưu trữ miễn phí như vậy. Có một danh sách các thư viện của bên thứ ba đã được thử nghiệm trong môi trường công cụ ứng dụng cho Java; nhưng tôi đã không thể tìm thấy nó với một tìm kiếm google cursory. Tôi biết nó ở đâu đó trong tài liệu của công cụ ứng dụng. Và, đối với những gì giá trị của nó, tôi đã làm một thử nghiệm khói nhỏ của GSON trong công cụ ứng dụng và nó dường như làm việc tốt.

+0

Cảm ơn. Tôi đã sử dụng Eclipse. Trong mã được tạo từ trình thủ thuật, tôi thấy: lớp công khai GreetingServiceImpl mở rộng RemoteServiceServlet triển khai GreetingService { @Override bảo vệ void doGet (HttpServletRequest req, HttpServletResponse resp) ném ServletException, IOException { ... Đây có phải là ý của bạn bằng cách "viết lại doGet "? – Mitch

+0

Tôi đã thêm // super.doGet (req, resp); \t \t PrintWriter out = resp.getWriter(); \t \t out.println ("Hello World"); – Mitch

+0

Có, câu hỏi của tôi là chung trong một vài ngày, nhưng rất cụ thể ở những người khác. Tôi đang tìm một ví dụ hoặc hướng dẫn, rất cụ thể. Tuy nhiên, đó là chung trong đó đưa ra một gợi ý về những gì sẽ làm việc cũng được đánh giá cao. – Mitch

2

Thử sử dụng JSONEngine- thư viện này tạo các API JSON có thể truy cập dễ dàng để lưu trữ/truy xuất/cập nhật/xóa dữ liệu JSON trong Google App Engine. Quyền truy cập vào từng tài liệu JSON chỉ có thể được đặt thành id email người dùng/google cụ thể/chỉ mở ID email id (như Google/Yahoo/AOL) ...

Đọc thêm về thư viện này tại code.google.com/p/jsonengine/

0

Thử mới Google Cloud Endpoints. Chúng vẫn đang thử nghiệm, nhưng theo như tôi đã thử, chúng hoạt động hoàn hảo.

Hơn nữa, chúng cực kỳ dễ sử dụng cho các mục đích đơn giản như bạn xác định. Nếu bạn đang sử dụng Plugin Eclipse của Google, bạn chỉ phải tạo một lớp JDO persitent và plugin tạo ra điểm cuối cho bạn một cách tự động. Xem hỗ trợ Trình cắm Eclipse của Google cho các Điểm cuối của Google CLoud here.

Các vấn đề liên quan