2011-01-30 23 views
5

Tôi muốn ứng dụng khách và máy chủ nói chuyện với nhau bằng các dịch vụ REST. Tôi đã cố gắng thiết kế này bằng cách sử dụng Spring MVC. Tôi đang tìm kiếm một cái gì đó như thế này:Làm thế nào để thiết kế một dịch vụ Spring MVC REST?

  1. Khách hàng không một dịch vụ POST còn lại gọi saveEmployee(employeeDTO, companyDTO)
  2. Server đã một phương thức POST tương tự trong điều khiển của nó saveEmployee(employeeDTO, companyDTO)

thể này được thực hiện sử dụng Spring MVC?

+1

đây trông giống như một ví dụ điển hình: http://www.stupidjavatricks.com/?p=54 – bwobbones

+1

@bwobbones, bạn nên chuyển đổi bình luận của bạn trong một câu trả lời;) –

+3

@RC, không muốn yêu cầu công việc của người khác ... – bwobbones

Trả lời

13

Có, điều này có thể được thực hiện. Dưới đây là một ví dụ đơn giản (với chú thích mùa xuân) của một điều khiển RESTful:

@Controller 
@RequestMapping("/someresource") 
public class SomeController 
{ 
    @Autowired SomeService someService; 

    @RequestMapping(value="/{id}", method=RequestMethod.GET) 
    public String getResource(Model model, @PathVariable Integer id) 
    { 
     //get resource via someService and return to view 
    } 

    @RequestMapping(method=RequestMethod.POST) 
    public String saveResource(Model model, SomeResource someREsource) 
    { 
     //store resource via someService and return to view 
    } 

    @RequestMapping(value="/{id}", method=RequestMethod.PUT) 
    public String modifyResource(Model model, @PathVariable Integer id, SomeResource someResource) 
    { 
     //update resource with given identifier and given data via someService and return to view 
    } 

    @RequestMapping(value="/{id}", method=RequestMethod.DELETE) 
    public String deleteResource(Model model, @PathVariable Integer id) 
    { 
     //delete resource with given identifier via someService and return to view 
    } 
} 

Lưu ý rằng có nhiều cách để xử lý các dữ liệu đến từ http-request (@RequestParam, @RequestBody, lập bản đồ tự động sau khi tham số để một chiếc đậu vv). Để có các giải thích và hướng dẫn dài hơn và có thể tốt hơn, hãy thử googling cho một cái gì đó như 'rest spring mvc' (không có dấu ngoặc kép).

Thông thường, trình khách (trình duyệt) được thực hiện với JavaScript và AJAX, tôi là một lập trình viên máy chủ phụ trợ và không biết nhiều về JavaScript, nhưng có rất nhiều thư viện có sẵn để trợ giúp, ví dụ thấy jQuery

xem thêm: REST in Spring 3 MVC

+0

Tôi không hiểu tại sao bạn đặt tên phương thức lưu trữ/cập nhật/xóa 'getResource'. –

+0

Những nguy hiểm của việc sao chép-dán ... thậm chí không tự nhận ra, tôi sẽ sửa nó. Cảm ơn bạn đã chỉ ra điều này! – esaj

1

Vâng, Nghỉ ngơi là rất dễ dàng để thực hiện sử dụng lò xo MVC.

@RequestMapping(value="/saveEmploee.do",method = RequestMethod.POST) 
@ResponseBody 
public void saveEmployee(@RequestBody Class myclass){ 
    //saving class. 
    //your class should be sent as JSON and will be deserialized by jackson 
    //bean which should be present in your Spring xml.  
} 
+0

Tôi có thể có nhiều đối số @RequestBody không? – outvir

+0

No. Làm thế nào điều này có ý nghĩa trong một yêu cầu REST? – cproinger

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