2009-06-18 33 views
81

Tôi muốn tạo một ứng dụng RESTful trên Google App Engine. Tôi muốn cung cấp các dịch vụ XML và JSON. Tôi đã thử nghiệm một thời gian ngắn với Restlet, Resteasy và Jersey. Tôi đã không có nhiều thành công với bất kỳ ai trong số họ, ngoài một số ví dụ đơn giản trong Restlet.Ứng dụng RESTful trên Google App Engine Java?

Bạn có thể chia sẻ trải nghiệm của mình khi tạo ứng dụng web Restful trên Google App Engine bằng Java hay cung cấp bất kỳ thông tin chi tiết nào về các bộ công cụ nói trên trên GAE không?

Cảm ơn!

Chỉnh sửa (2009-07-25):

Tôi đã quyết định sử dụng Restlet trong thời gian này. Nó có vẻ hoạt động hoàn hảo cho đến nay. Vui lòng đăng bất kỳ thông tin chi tiết/ý kiến ​​khác mà bạn có thể có. Bạn gặp phải vấn đề gì? Bạn đã sử dụng thành công Jersey/Restlet/Resteasy trên GAE/J chưa? Nếu vậy, chúng tôi muốn nghe về nó!

+0

http://technicalrex.com/2014/08/11/creating-a-jersey-app-on-google-app-engine/ và http://www.javacodegeeks.com/2012/05/google-app-engine-j ax-rs-rest-service.html là giai đoạn tốt nhất về tích hợp Jersey GAE. –

+0

Đó là vấn đề được lựa chọn trong khung công tác chúng tôi đang sử dụng để phát triển, tôi đã sử dụng Spring MVC với objectify cũng Hibernate và nó cũng hoạt động hoàn hảo trên Google App Engine. –

+0

@AnkurJain vâng, rất nhiều thay đổi trong 7 năm. –

Trả lời

42

Tôi vui mừng báo cáo rằng Restlet M3 hoạt động FLAWLESSLY trên AppEngine 1.2.2. Tôi đã làm theo hướng dẫn "Bước đầu tiên" và "Tài nguyên đầu tiên" được tìm thấy http://restlet.com/technical-resources/restlet-framework/guide.

Vì vậy, có vẻ như với tôi rằng Restlet là câu trả lời cho các ứng dụng GAE/J Restful của bạn.

+4

Liên kết ở trên hiện đã bị hỏng. Liên kết có liên quan GAE dành cho Restlet 2.2 là http://restlet.org/learn/guide/2.2/editions/gae –

-1

Hai hành động API RESTE REST cồng kềnh nhất để thực hiện công việc, cho dù Java hay .py, là đồ họa và cách hiển thị thông tin cá nhân. My little gae rest feed forked another dự án. Tôi chắc chắn Java thành công nơi python bị kẹt do Java mất và đưa ra nhiều cách (lợi thế) cũng như thời gian dài hơn (chậm) để thành công (bất lợi) trong khi các dự án python mở ra ít cách để thành công (bất lợi) và ít thời gian phát triển hơn (phát triển nhanh chóng thuận lợi) để thành công giống nhau.

2

Đối với những gì nó có giá trị, đã có khá nhiều cuộc thảo luận trên Jersey user lists wrt cách làm cho Jersey hoạt động trên GAE. Đó là chút tẻ nhạt công việc do hạn chế GAE (thiếu các lớp học từ danh sách trắng - hy vọng giải quyết theo thời gian), nhưng rõ ràng có thể được thực hiện để làm việc. Vì vậy, trong khi không đáng kể dễ dàng, đó có thể là đặt cược tốt nhất của bạn; đặc biệt vì nhiều vấn đề phải đối mặt là giống nhau đối với tất cả các khuôn khổ (do GAE áp đặt).

+0

tôi muốn hỏi bạn nếu bạn có bất kỳ giải pháp nào cho câu hỏi của tôi tại đây http://stackoverflow.com/questions/32699420/url-parameters-are-not-being-passed-by-curl-post cảm ơn u –

6

Tôi cũng sẽ bắt đầu khám phá điều này, nhưng chưa bắt đầu. Tôi đã tìm thấy khuôn khổ này, nói rằng nó sẽ làm việc, nhưng như tôi đã nói chưa thử nó.

http://wiki.restlet.org/docs_1.2/13-restlet/275-restlet/252-restlet.html

Nếu bạn nhận được nó làm việc, hoặc quản lý để có được một trong những gợi ý ở trên làm việc, cập nhật tất cả mọi người như tôi chắc chắn có quan tâm đến việc này.

+1

Tôi ' m khá chắc chắn Restlet sẽ làm việc. Nó chỉ là một chút nastier để sử dụng hơn những người khác. Tôi đặc biệt thích các chú thích mà Jersey giới thiệu. Tôi dự định sử dụng Restlet trong vòng vài tuần tới. Tôi chắc chắn sẽ đăng một bản cập nhật. –

+0

Tôi đã dành cả ngày cuối tuần để chơi với điều này, và Restlet hoạt động tốt trên GAE. Tôi đã có thể đặt một cái gì đó với nhau theo ví dụ được đưa ra trên trang web Restlet tại url tôi rời trước đó mà bây giờ là xuống. Nhưng nó là tầm thường để thiết lập mọi thứ. – broschb

+0

Tôi đã viết một bài đăng nhỏ trên blog của mình để trả lời một câu hỏi khác trên stackoverflow. Nó đi qua một ví dụ rất cơ bản về việc khôi phục lại GAE. http://broschb.blogspot.com/2009/08/restful-service-on-google-app-engine.html – broschb

16

Tôi đang sử dụng Jersey trên GAE. Đây là liên kết dành cho những người quan tâm đến việc thiết lập: (Tôi đang sử dụng GAE SDK v1.4.0):

http://tugdualgrall.blogspot.com/2010/02/create-and-deploy-jax-rs-rest-service.html

+2

Liên kết trên bao gồm Jersey 1.1.5. Nhóm GAE duy trì ghi chú về phiên bản này và các phiên bản mới hơn tại đây - https://code.google.com/p/googleappengine/wiki/WillItPlayInJava#Jersey –

3

Vâng, tôi rất muốn khuyên bạn có một cái nhìn tại play framework

Hãy nhìn vào video trên trang chủ

Nó có một gae module

Với siena dưới dạng một orm để xử lý gae datastore

Từ tất cả các khuôn khổ java Tôi đã nhìn thấy cho đến nay, tôi nghĩ rằng nó có đường cong học tập dễ dàng hơn,

  • lớn documentation,

  • một tutorial để phát triển một ứng dụng hoàn chỉnh

  • rất tích cực và hữu ích cộng đồng ,

  • miễn phí như trong bia và cũng như trong lời nói

  • cao khả năng mở rộng do nó không quốc tịch ra khỏi thiết kế hộp

  • rest friendly

  • tùy biến cao thông qua đó là module và plugin cách tiếp cận

nhiều hơn, có tính đến đó là cho một khóa học đại học , thật dễ dàng để hack vào mã, tôi có thể xử lý một vài vé và các tính năng mới mà không có bất kỳ trải nghiệm nào với java, chỉ một vài năm phát triển các ứng dụng web với php

lợi ích khác

  • nó thực sự dễ dàng để bắt đầu, không có thiết lập phức tạp có liên quan, chỉ cần tải về và giải nén tập tin và bạn đã sẵn sàng

  • kinh nghiệm phát triển vượt bậc, chỉ cần sửa mã và nhấn refresh, chơi autocompiles thay đổi một cách nhanh chóng khi chạy trên chế độ phát triển

  • nhanh và nhẹ

  • fullstack, bạn không cần phải tích hợp c khung umbersome để làm cho nó hoạt

  • báo cáo lỗi lớn, không vô tận hơn lỗi stack trace, chỉ cho bạn thấy phù hợp với lỗi

  • không có cấu hình xml bất cứ nơi nào xung quanh

  • hỗ trợ tuyệt vời cho tdd với selen thử nghiệm tích hợp

Tôi nghĩ rằng lợi thế chính là công cụ học tập, là có thể nhìn trộm vào mã nguồn mà không cảm thấy bị mất và hỗ trợ cộng đồng ...Tài liệu hướng dẫn rất rõ ràng và bạn có thể học được rất nhiều chỉ bằng cách xem mã nguồn ...

+0

Phát có vẻ rất ấn tượng. Tuy nhiên, sự tích hợp của nó với GAE không giống như nó được duy trì trong dự án chính và do đó chậm lại sau chu kỳ phát hành của GAE. Plugin GWT của nó dường như tụt hậu hơn nữa. Không ít hơn, tôi sẽ cung cấp cho bạn một upvote cho thấy tôi như một dự án mát mẻ. –

+0

mô-đun gae được phát triển và được nhà phát triển chính, mô-đun siena (đề nghị orm cho gae, jpa có rất nhiều rắc rối) được một thành viên rất tích cực của cộng đồng mantained, tiếc là mô-đun gwt không nhận được nhiều sự chú ý trong hành động ... – opensas

+0

mô-đun gae đã trở lại đúng hướng! một nhà phát triển khác chịu trách nhiệm về nó, đây là hỗ trợ fot gae 1.6 http://www.playframework.org/modules/gae-1.6.0/home – opensas

2

Gần đây tôi đã đặt mẫu dự án với Jersey, Guice and AppEngine tại GitHub. Nó đã được phát triển với SimpleDS, nhưng nó có thể được sửa đổi để làm việc với Objectify/JDO dễ dàng. Dự án là trực tiếp here.

Đây sẽ là điểm khởi đầu tốt cho các dự án mới.

1

Đây là một hướng dẫn rất tốt về Restlet/Android/GAE/Objectify với một ví dụ về một ứng dụng đơn giản. Xin lỗi nó bằng tiếng Pháp, nhưng bạn có thể juste sao chép/dán mã, hoặc sử dụng google traduction.

Tôi đã theo dõi và đã có một máy chủ Android/GAE hoạt động giao tiếp với nhau trong vòng 2 giờ. Đó là một cơ sở tốt để bắt đầu hoặc kiểm tra Restlet.

http://www.tutos-android.com/webservice-rest-android-appengine-restlet-objectify

Good Luck

3

Vì các Valiant giải pháp cũ đã được vá lại với nhau, Google đã rõ ràng cung cấp một plugin Eclipse để tạo ra một dự án khởi động mà tạo ra một ứng dụng App Engine, một APK hỗ trợ Android, và một Web ứng dụng, tất cả nói chuyện với nhau qua một giao diện được xác định bởi một tập hợp các khai báo đối tượng được chú thích.

Đã không cố gắng này chưa bản thân mình, nhưng có một cái nhìn trước khi cố gắng bất kỳ ví dụ không đồng nhất hơn được mô tả trong bài viết trước trên:

https://developers.google.com/eclipse/docs/appengine_connected_android

video của Google Đây cũng là khá nhiều thông tin:

http://www.youtube.com/watch?v=NU_wNR_UUn4

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