2008-09-15 52 views
16

Tôi đang tìm phiên bản nhẹ của REST cho ứng dụng web Java mà tôi đang phát triển.REST trong Java

Tôi đã xem RESTlet (www.restlet.org) và plugin REST cho Struts 2, nhưng tôi chưa quyết định. Tôi đang nghiêng về phía RESTlet, vì nó có vẻ nhẹ hơn.

Có ai đã triển khai lớp RESTful mà không có bất kỳ khung công tác hay khung công tác nào không?

Bất kỳ vấn đề về hiệu suất nào bạn đã thấy do lớp web mới?

Việc giới thiệu REST có thêm sự phức tạp không thể quản lý hoặc không hợp lý vào dự án của bạn không? (Một số phức tạp là dễ hiểu, nhưng những gì tôi có nghĩa là chỉ cần đồng bằng overkilling thiết kế của bạn chỉ để thêm REST) ​​

+0

Xem http://meta.stackexchange.com/questions/71068/a-few-possible-duplicate-questions-about-java-rest-what-should-we-do – ripper234

Trả lời

3

Vâng, tôi đã sử dụng Enunciate khá một chút. Nó sử dụng các chú thích đơn giản để cung cấp các điểm cuối REST và/hoặc SOAP.

http://enunciate.codehaus.org

Thêm vào đó, Ryan Heaton đã luôn hỗ trợ hàng đầu cho những thứ, quá.

1

Tôi đang làm việc trên API REST cho gliffy.com và cuối cùng chúng tôi đã tự thực hiện. Chúng tôi không muốn phải mang theo Struts 2, Spring, hoặc bất kỳ khuôn khổ nào khác. Tôi đã xem RESTLet và thấy nó vô cùng khó hiểu và phức tạp hơn.

Apache có triển khai thông số JAX-RS nhưng chưa được hoàn thành và cũng có một số điểm kỳ quặc đối với nó. Chúng tôi đang dự định mở nguồn giải pháp của mình, nhưng đó không phải là một vài tháng.

Di chuyển của riêng bạn thật dễ dàng. Đặc tả Servlet cung cấp cho bạn mọi thứ bạn cần, và bạn có thể dễ dàng kết nối với cơ sở dữ liệu qua Hibernate (xem http://www.naildrivin5.com/daveblog5000/?p=39 để biết cách thiết lập JPA mà không sử dụng EJB3).

1

Tôi tìm thấy nhà hàng phục hồi là một kiến ​​trúc thực sự thanh lịch. Tôi đang làm việc trong thế giới net. Vì vậy, nó không phải là một lựa chọn cho tôi, nhưng tôi đã có thể xây dựng khung của riêng tôi theo các nguyên tắc cơ bản tương tự của phục hồi. Tôi đã tìm thấy việc chuyển đổi WCF hợp đồng dựa trên ứng dụng SOA của chúng tôi để nghỉ ngơi dựa một đã đơn giản hóa đáng kể việc áp dụng,

3

Bạn biết có một API JCP mới cho Truy cập RESTful Services, cũng:

JAX-RS JCP311 https://jsr311.dev.java.net/

phiên bản mã nguồn mở được gọi là Dự án Jersey

+0

Jersey [1] là triển khai JSR-311. Nó có sẵn để tải xuống một mình hoặc như một phần của Glassfish [3], máy chủ ứng dụng mã nguồn mở của Sun. Bản phát hành 2.0 sắp ra mắt của Restlet [4] cũng triển khai JSR-311. [1] https://jersey.dev.java.net/ [2] http://jsr311.dev.java.net/ [3] http://glassfish.dev.java.net/ [4] http://restlet.org/ –

+0

JSR-311 là ** không ** để truy cập vào các Dịch vụ RESTful, mà là phục vụ/cung cấp/triển khai các Dịch vụ RESTful. Để truy cập các dịch vụ RESTful có nghĩa là nó hoạt động như một máy khách, tuy nhiên Jersey cung cấp một thư viện máy khách REST. –

20

tôi là một fan cuồng nhiệt của JAX-RS - tôi nghĩ rằng họ đã thực hiện một công việc tuyệt vời với đặc điểm kỹ thuật đó. Tôi sử dụng nó trên một số dự án và nó là một niềm vui để làm việc với.

JAX-RS cho phép bạn tạo tài nguyên REST bằng POJO với các chú thích đơn giản liên quan đến ánh xạ URI, phương thức HTTP và thương lượng nội dung được tích hợp hoàn toàn với tiêm phụ thuộc. Không có API phức tạp để tìm hiểu; chỉ cần các khái niệm REST cốt lõi (URI, tiêu đề/mã phản hồi và thương lượng nội dung) là bắt buộc. FWIW JAX-RS khá Rails-ish từ điểm điều khiển của xem

Có một số triển khai JAX-RS ngoài đó - xem this thread for a discussion.

Đề xuất cá nhân của tôi là sử dụng Jersey vì nó có cộng đồng lớn nhất, năng động nhất đằng sau nó, có các tính năng tốt nhất tại thời điểm viết bài (hỗ trợ WADL, xem ngầm, tích hợp mùa xuân, API khách hàng REST đẹp); mặc dù nếu bạn đang sử dụng JBoss/SEAM bạn có thể thấy RESTeasy tích hợp tốt hơn một chút.

8

Tôi là người hâm mộ lớn của Restlet, nhưng tôi thường sử dụng nó để triển khai ứng dụng có vai trò chính là dịch vụ web RESTful. Có vẻ như bạn đang tìm cách thêm một API RESTful vào một ứng dụng hiện có. Trong trường hợp đó, phương pháp dựa trên chú thích của JAX-RS (hoặc Enunciate) có thể phù hợp hơn cho dự án của bạn.

Đối với Restlet, tôi có thể cho bạn biết rằng tôi đã rất ấn tượng với các nhà phát triển và cộng đồng; họ rất tích cực, tham gia, đáp ứng và cam kết với một khuôn khổ ổn định, hiệu quả, đáng tin cậy và hiệu quả. Khía cạnh yêu thích duy nhất của tôi trong khung công tác là nó là một triển khai nền tảng của mô hình REST; do đó không có trở kháng không phù hợp giữa API bên ngoài của ứng dụng Restlet và triển khai nội bộ. Tôi cũng thực sự thích nó linh hoạt như thế nào - nó có thể chạy bên trong một thùng chứa/máy chủ ứng dụng Java như JBoss, Tomcat, Jetty, vv, hoặc độc lập, với một thư viện máy chủ HTTP được nhúng.

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