2011-11-17 3 views
5

Google recommends 복잡한 GWT 애플리케이션을 구축 할 때 명령 패턴을 사용합니다. 아이디어에는 장점이있는 것 같으며 다양한 프레임 워크가 개발되어 도움이되었습니다. 그러나 대부분의 예제에서 클라이언트/서버 통신에 GWT-RPC를 사용하고 있습니다.명령 패턴은 RESTful 웹 서비스와 호환 가능합니까?

우리는 자바 백엔드를위한 RESTful 웹 서비스를 개발하고이를 클라이언트/서버 통신 (아마도 Resty과 같은 프레임 워크를 사용)으로 사용하려고합니다.

그러나 명령 패턴은 나머지 웹 서비스와도 호환됩니까? 그 Rest URL은 어떻게 생겼을까요? 일괄 처리 및 실행 취소 명령을 어떻게 지원합니까?

답변

2

지원하는 패키지를 사용하지 않으면 일괄 처리를 구현해야합니다. 우리 회사에서는 직선적 인 REST 인터페이스를 사용하기로 결정했습니다. 단일 API를 통해 자체 일괄 처리를 작성하는 데 드는 비용은 RequestFactory API 을 공용 API로 만드는 비용보다 적습니다.

어떻게 든 여러 개의 나머지 URL과 페이로드를 단일 URL과 페이로드로 인코딩해야합니다.

+1

예를 들어 http://code.google.com/apis/gdata/docs/batch.html을 참조하십시오. –

4

명령 패턴은 권장 패턴이며 RemoteService 및 RemoteServiceServlet을 사용하여 RPC 인터페이스를 작성하는 데있어 한 걸음 더 나아갔습니다. RemoteService 및 RemoteServiceServlet은 사용자가 참조하는 Google I/O 프레젠테이션 당시 사용 가능했던 거의 모든 것입니다. .

GWT-RPC 접근 방식은 매우 훌륭하고 잘 작동하며 일괄 처리 및 실행 취소 메커니즘을 제공합니다. 일괄 처리를 사용하더라도 모든 핸들러에서 하나의 undo() 함수를 구현 한 적이 없다고 말해야합니다.

새로운 접근 방식은 RequestFactory를 사용하고 코드를 서비스에 매핑하는 것입니다. 일괄 처리는 지원하지만 실행 취소는 지원하지 않습니다. 구현하는 데 많은 노력을 기울이지는 않지만 그 고유 한 특성을 가지고 있습니다. 좋은 예가 here입니다.

REST 인터페이스가 필요한 경우 개발중인 두 인터페이스를 저장하기 위해 GWT에서이 인터페이스를 사용하는 것이 현명한 아이디어처럼 보입니다. 그러나 @Riley Lark이 말했듯이 자신 만의 일괄 처리를 작성해야합니다 (필요한 경우 실행 취소()).

제 생각에 일괄 처리와 실행 취소는 모두 REST 방식과 맞지 않습니다.하지만 제 의견입니다. 비슷한 질문에서 좀 더 자세한 정보가 있습니다 here.

Perosnally 나는 GWT 인프라와 RequestFactory를 사용하여 클라이언트와 서버 간의 통신을 수행하고 일괄 처리, optomised 프로토콜 및 크로스 사이트 스크립팅 보호를 활용하고 필요에 따라 별도의 REST 인터페이스를 작성합니다.

관련 문제