2011-09-05 6 views
4

iPhone 및 Android 장치에 API를 제공해야하는 Tapestry 5 기반 웹 응용 프로그램에서 작업하고 있습니다. 현재 API는 태피스트리의 MVC 기능을 사용하여 구현됩니다. 예를 들어 모든 서비스는 모바일 액세스 전용의 Tapestry 페이지 클래스에서 JSON 문자열을 반환하는 핸들러 메소드입니다. 인증은 Spring Security로 수행되며 모든 사용자는 세션에 바인딩됩니다. 나는 오히려 이런 것들에 익숙하지 않기 때문에 내가 틀렸다면 나에게 정정해라. 그러나 이것은 매우 깨끗한 해결책처럼 보이지 않는다.Tapestry 웹 응용 프로그램에 API 공개

이 솔루션의 단점은 무엇입니까? 대신 REST-API를 사용할 때 중요한 이점은 무엇입니까? 그런 경우 가장 좋은 방법은 무엇입니까?

답변

5

는 우리가 우리의 T5 웹 응용 프로그램에서 피드를 노출하는 유사한 요구 사항이 서로 다른 접근 방법을 시도 SeeSaw.com를 들어

1

Tapestry-RestEasy을보십시오.

읽기 전용 데이터의 경우 XML (또는 JSON)을 피드로 렌더링하는 T5 페이지/구성 요소를 노출합니다. 읽기/쓰기 데이터의 경우 JSON을 통해 Tapestry OnXXX 이벤트를 구현합니다. 이 방법으로 파일을 분할하면보다 효율적인 사이트를 얻을 수 있습니다 (읽기 전용 파일은 캐시 될 수 있음).

0

어쩌면이 도움이 될 것입니다 ...

Template Skinning

내가 당신과 함께 5.3에 도입 된 새로운 멋진 태피스트리 기능을 공유하고자이 문서에있는 문서

인용합니다. 이 기능을 사용하면 여러 템플릿을 만들어 하나의 페이지에 여러 가지 스킨을 제공 할 수 있습니다. Tapestry는 이러한 다양한 템플릿을 사용하여 동일한 페이지를 다른 클라이언트를위한 특별한 방식으로 렌더링합니다. 예를 들어 표준 및 모바일 클라이언트 용 웹 응용 프로그램을 개발할 때 현재 클라이언트에 따라 동일한 페이지를 다르게 렌더링해야 할 수도 있습니다. 따라서 각 페이지에 대해 두 개의 다른 템플리트를 작성하고 클라이언트가 전송 한 사용자 에이전트에 따라 이들 중 하나를 선택해야합니다.

"청결한 해결책"이 될 수 있습니다. 건배!

머레이 ...

관련 문제