2008-11-20 26 views
23

Có một câu hỏi tương tự here nhưng nó chỉ bao gồm một số vấn đề bên dưới.Công cụ REST hỗ trợ cho việc phát triển và thử nghiệm

Chúng tôi có một khách hàng yêu cầu dịch vụ web bằng REST.

Chúng tôi có rất nhiều trải nghiệm sử dụng SOAP và theo thời gian đã tập hợp một bộ công cụ thực sự tốt để phát triển và thử nghiệm SOAP, ví dụ:

  • soapUI
  • Eclipse plugin
  • WSDL2Java
  • WSStudio

Bằng "công cụ" Ý tôi là một sản phẩm "out of the box" mà chúng ta có thể bắt đầu sử dụng. Tôi không nói về việc cắt mã để "cuộn của chúng tôi" bằng cách sử dụng Ajax hoặc bất cứ điều gì.

Bộ công cụ cho REST dường như không còn trưởng thành?

  • Có công cụ nào (chúng tôi sử dụng C# và Java chủ yếu)?

  • Các công cụ có xử lý GET, POST, PUT và DELETE không?

  • Có plugin Eclipse phong nha không?

  • Có ứng dụng kiểm tra khách hàng phong nha như WSStudio nơi bạn trỏ công cụ vào WSDL và nó tạo proxy khi đang di chuyển với các phương thức và đầu vào thích hợp và bạn nhập dữ liệu đơn giản không?

  • Có công cụ giám sát gói nào tốt cho phép bạn xem dữ liệu không? (Tôi không nghĩ về sniffers như Wireshark ở đây nhưng thay vì những thứ như soapUI cho phép bạn xem yêu cầu/phản ứng)?

Trả lời

5

Về mặt Java, có API JAX-RS, là Java Api cho Xml sử dụng Dịch vụ an toàn hoặc một cái gì đó tương tự. Về cơ bản, JAX-RS cung cấp một cách tiêu chuẩn hơn để xây dựng các dịch vụ RESTful trong Java.

Ngoài ra còn có Restlet, cho phép dễ dàng phát triển các dịch vụ Restful và dựa trên đặc tả JAX-RS.

Ngoài ra, thanh toán SOAP-UI gần đây đã thêm hỗ trợ tốt cho REST.

http://www.restlet.org/

http://jcp.org/en/jsr/detail?id=311 - JAX-RS

http://www.eviware.com/content/view/134/1/ - SOAP UI

http://sourceforge.net/projects/soapui - SOAP UI

+0

https://restclientgui.codeplex.com –

1

Tôi muốn nhấn mạnh rằng dự án Restlet hỗ trợ hai API để phát triển các ứng dụng RESTful:

  • Lõi Restlet API: dựa trên lớp, client và server-side, đa giao thức, tính năng phạm vi rất lớn
  • JAX-RS API: chú thích dựa trên, chỉ có server-side, các tính năng nhỏ hơn phạm vi

Restlet có thể triển khai trong các thùng chứa Servlet, độc lập (JVM thuần túy), trong GWT cho phía máy khách, trong Spring, trong Mule ESB hoặc trong các thùng chứa OSGi. Đây là hoàn thành list of features.

Trân trọng,

Jerome Louvel

+0

Cảm ơn Jerome, điểm tốt. – Mark

+0

Chắc chắn câu hỏi là về các công cụ, không phải về các API. –

9

Đối với người mới bắt đầu, bạn cần một công cụ cho phép bạn xây dựng một yêu cầu HTTP tùy ý (bao gồm tiêu đề như content-type, phương thức HTTP, xác thực HTTP và yêu cầu cơ thể) và kiểm tra phản hồi HTTP (bao gồm mã trạng thái, tiêu đề và nội dung phản hồi). Thật tuyệt nếu nó là công cụ kịch bản.

Có một cái nhìn tại địa chỉ:

Để tự động tạo một proxy Tôi đoán bạn đang tìm kiếm một cái gì đó phân tích cú pháp WADL, câu trả lời REST cho WSDL. Thật không may, tôi không biết bất cứ điều gì như thế.

+0

Chỉ để hoàn thành, soapUI dường như đã thêm hỗ trợ WADL. – wwerner

0

SOA Cleaner, là công cụ kiểm tra kiểm tra cả xà phòng và phần còn lại (còn WCF, nhưng có vẻ như bạn không cần tính năng đó). Nó rất trực giác, và có thể sử dụng được. Được viết bằng .NET. Một phiên bản miễn phí cũng có sẵn. có thể được tải xuống từ http://xyrow.com. Chúc may mắn!

6

Tôi đã tìm thấy một plugin Firefox được gọi là Poster cho phép bạn hoạt động như một máy khách REST tương tự như phần còn lại của khách hàng và những người khác. Tôi muốn nó sẽ trả về phản hồi cho một tab firefox (chứ không phải là một cửa sổ đầu ra tùy chỉnh) để bất kỳ XML trả về nào cũng có thể được tô màu bằng cú pháp tô sáng tuyệt vời của Firefox. Nhưng nhìn chung có vẻ ổn.

Cập nhật: Oh, thậm chí tốt hơn. Tôi tìm thấy một plugin firefox khác được gọi là RestClient https://addons.mozilla.org/en-US/firefox/addon/9780. Điều này dường như làm nổi bật cú pháp.

0

Về mặt ứng dụng thử nghiệm ứng dụng khách, tôi gặp sự cố tương tự. Tôi không thể tìm thấy một công cụ mà tôi có thể sử dụng để nhanh chóng kiểm tra dữ liệu vào và ra khỏi các dịch vụ web mà tôi đã tạo/sử dụng. Vì vậy, tôi tạo ra công cụ của riêng tôi bằng cách sử dụng C# .NET. Về cơ bản nó là một ứng dụng máy khách mà bạn có thể sử dụng cho các truy vấn GET, POST, PUT và DELETE trên các dịch vụ còn lại.

Phần mềm này được gọi là REST Scratch Pad.Nó cho phép bạn nhập dữ liệu để gửi tới dịch vụ REST và xem kết quả của các truy vấn cùng với các tiêu đề và thời gian phản hồi của chúng. Nó sẽ xử lý xác thực cơ bản và sẽ nhớ các URL bạn đã sử dụng trong các phiên trước đó (để tránh phải nhập lại các URL dài).

Phiên bản hiện tại là miễn phí. Phiên bản tiếp theo sẽ sử dụng phiên bản .NET mới hơn và bao gồm các phương thức xác thực khác.

REST ScratchPad

3

Các công cụ khách hàng dễ dàng và tốt nhất để kiểm tra REST API của bạn gọi là một Firefox add-on RESTClient.

Cài đặt tiện ích bổ sung và kiểm tra các cuộc gọi API.

12

Tôi đã tìm kiếm và tìm thấy plugin này cho chrome.

POSTman REST Client.

+1

Điều này là tốt nhất. – Zasz

+0

Không thể làm cho tiện ích mở rộng này hoạt động trong Chromium 18. Chức năng duy nhất hoạt động là gửi yêu cầu GET - nhưng đó là điều tôi có thể làm với bất kỳ Ứng dụng khách Web nào. – feeela

-1

SoapUI, mặc dù tên của nó, cũng có thể hỗ trợ các yêu cầu REST. Bởi vì REST thường không cung cấp bất cứ thứ gì như WSDL, bạn tự tạo ra các yêu cầu cần thiết cho giao diện web của mình. Tùy thuộc vào độ phức tạp của webservice REST, điều này có thể là bất cứ điều gì từ tầm thường đến yêu cầu, nhưng nó ít nhất sẽ giúp bạn có được một số kết quả ngay lập tức.

0

Trình kiểm tra tốt cho các dịch vụ web REST là HttpMaster.

Nó hỗ trợ các phương thức http khác nhau và cho phép bạn theo dõi dữ liệu yêu cầu/phản hồi hoàn chỉnh. Bạn cũng có thể sử dụng các tham số động để thực hiện một nhóm các yêu cầu, nó cũng hỗ trợ xác nhận dữ liệu phản hồi đơn giản. Nó rất dễ sử dụng, nhưng nó chỉ chạy trên Windows (đó là một ứng dụng .NET).

0

Bạn có thể thử thư viện REST Assured giúp dễ dàng kiểm tra các dịch vụ REST từ Java. Ví dụ cho rằng tài nguyên của bạn được gọi là "lời chào" và trả về JSON sau:

{ "greeting" : { "firstName" : <first_name>, "lastName" : <last_name> } } 

bạn có thể kiểm tra nó như thế này trong yên tâm:

given(). 
     param("first_name", "John"). 
     param("last_name", "Doe"). 
when(). 
     get("/greeting"). 
then(). 
     statusCode(200). 
     body("greeting.firstName", equalTo("John"). 
     body("greeting.lastName", equalTo("Doe"); 
Các vấn đề liên quan