2013-07-29 6 views
0

저는 편안한 서비스를 클라이언트로 구현 (실제로 바인딩)하는 좋은 방법에 대해 궁금해했습니다.편안한 서비스 처리

URL- "문자열"이 상위 코드에서 연결되는 코드 스 니펫을 자주 볼 수 있습니다. 이는 분명히 매우 혼란 스럽습니다. 이 작업을 수행 할 수있는 적절한 방법이 될 것입니다 무엇

"http://service.url/firstname/" + $firstname + "/surname/" + $surname 

같은

?

나에게이 문제는 계약서를 가질 수있는 고전적인 RPC (JSON/XML-RPC) 접근 방식으로 쉽게 해결할 수 있으며 예상 한 것에 대해 더욱 엄격해질 수 있습니다.

감사합니다.

-alessandro

답변

1

REST 응답은 URL을 작성하면 안된다는 것입니다. REST 세입자 다음의 시스템에서는 시스템의 하이퍼 미디어 탐색을 위해 제공된 자원에 대한 링크를 따라갑니다. 합리적인 잘 알려진 URL에서 네비게이션의 루트로 시작하여 거기에서 나온 리소스를 살펴 봅니다.

이것은 HATEOAS - Hypermedia as the Engine of Application State으로 알려져 있습니다. 이는 REST 아키텍처 제약 중 하나입니다.

이 제약 조건의 중요한 장점은 언제든지 API에서 URL 스키마를 변경할 수있는 범위에서 클라이언트를 API에서 분리하여 다양한 클라이언트가 비슷한 변경을 할 필요가 없다는 것입니다. '이전'URL에 대한 요청은 300 건의 오류로 처리되며 새로운 URL이 점차 캐시에 채워집니다.

성능면에서 볼 때 300 가지 코드를 존중하고 캐싱 된 URL을 적절히 업데이트해야만 이러한 URL을 캐시 할 수 있습니다.

특정 이름의 특정 사용자를 찾으려는 경우 이미 URL이 캐싱되어 있거나 OpenSearch와 같은 메커니즘이있어 조건을 충족하는 사용자를 찾을 수 있습니다. 서비스에서 템플릿을 제공하지 않으면 URL을 "빌드"하지 않습니다.

당신은 http://www.thomas-bayer.com/sqlrest/에서 REST 서비스의 좋은 교육적 예를 찾을 수 있습니다. 귀하의 브라우저는 서비스와 상호 작용할 수있는 충분한 클라이언트이며 Hypermedia 형식을 따라 모든 클라이언트가 시스템 자원을 검색하는 방법을 보여 주어야합니다.

+0

답장을 보내 주셔서 감사합니다. 귀하의 접근 방식/아이디어는 일반 브라우저로 탐색되는 웹 응용 프로그램에 대해서는 완벽하게 잘 보입니다. 하지만 예를 들어 JS 애플리케이션이라면 어떻게하면 좋을까요? 예제가 있습니까? – AlessandroEmm