2012-05-28 2 views
3

웹 서비스로 사용할 C++ API를 작성 중입니다. API의 함수는 입력 매개 변수로 images/path_to_images를 가져 와서 처리하고 다른 이미지/paths_to_images 세트를 출력으로 제공합니다. 개발자가이 API를 자신의 프로젝트에 사용할 수 있도록 REST 인터페이스를 구현할 생각이었습니다 (어떤 언어로 작업하든 관계없이). 그러나 REST는 조회 또는 조작하려는 데이터 콜렉션이있는 경우에만 유용하며, 정확히 여기서는 그렇지 않습니다. [내가 가진 컬렉션은 제공된 데이터를 조작하는 다른 함수입니다.]REST와 C++ API의 RPC 비교

RPC 인터페이스를 구현하는 것이 더 좋습니까? 아니면 REST 자체를 사용하여 수행 할 수 있습니까?

답변

1

을, 나 또한 REST 갈 것입니다. REST는 실제로 리소스 기반이며, 귀하의 경우에는 처리 할 리소스가 없다고 생각할 수 있습니다. 그러나 그것은 사실이 아닙니다. 시스템의 이미지 변환기가 자원입니다. 이미지를 POST하고 새로운 이미지를 반환합니다. 그래서 단순히 같은 URL을 만들 것입니다 : 그것에

POST http://example.com/image-converter 

당신 POST 이미지와는 새로운 이미지의 경로와 약간의 배열을 반환합니다.

잠재적으로, 당신은 또한 수 :

이미지 변환의 상태에 대해 말할 수
GET http://example.com/image-converter 

(가정 이는 약간의 시간이 소요되는 작업입니다).

그런 식의 장점은 개발자가 익숙한 HTTP 동사를 다시 사용한다는 것입니다. 인터페이스는 거의 자체적으로 문서화됩니다 (물론 POST에서 받아 들여지고 반환 된 형식을 문서화해야합니다. 요구). RPC를 사용하면 새 동사를 정의하고 문서화해야합니다.

+0

POST 작업을 수행하자마자 처리를 시작하기 위해 C++ 코드에 대해해야 할 일에 대한 제안 사항이 있습니까? 당신의 예제에서'http : // example.com/image-converter'를 내가 가진 C++ 코드에 어떻게 링크시킬 수 있습니까? –

-1

RPC에 비해 REST (json 스타일 인터페이스)는 가볍고 API 사용자가 쉽게 사용할 수 있습니다. RPC (soap/xml)는 복잡하고 무거워 보입니다.

나는 당신이 원하는 것은, POST는, PUT, HEAD 삭제 HTTP + JSON 기반의 API http://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven

+0

그의 질문은 : 내가 REST 또는 RPC를 사용해야합니까? –

1

REST는 일반적인 작업 GET을 사용하는 REST 저자 주장이 아니라 REST API입니다 추측. 상상할 수 있듯이 이것은 매우 데이터 지향적입니다. 그러나 데이터 유형에는 제한이 없으며 데이터 크기에는 제한이 없습니다 (어쨌든 알고 있지 않습니다). 그래서 거의 모든 상황에서 사용할 수 있습니다 (바이너리 데이터 전송 포함). REST의 장점 중 하나는 웹 브라우저가 REST를 이해하고 사용자가 요청을 보내기위한 전용 애플리케이션을 가질 필요가 없다는 것입니다.

RPC는 더 많은 가능성을 제시하며 사용할 수도 있습니다. 예를 들어 사용자 지정 작업을 정의 할 수 있습니다. 당신이하고자하는 일에 많은 힘이 필요하다는 것을 확신하지 못합니다.

개인적으로 나는 REST와 함께 갈 것이다.

여기 읽고 싶어 수있는 링크입니다 : lcfseth처럼 http://www.sitepen.com/blog/2008/03/25/rest-and-rpc-relationship/