programing

PHP에서의 REST vs. RPC

css3 2023. 3. 11. 09:17

PHP에서의 REST vs. RPC

저는 Ajax 웹사이트를 만들고 있는데 REST와 RPC 중 하나를 고민하고 있습니다.

서버가 Servlet을 지원하는 경우 계속 설치하여 문제를 해결하려고 하는데 서버가 Servlet을 지원하지 않습니다.

RPC는 코드화(IMO)가 간단하고 PHP로 쉽게 작성할 수 있습니다.데이터베이스 쿼리 실행자만 있으면 됩니다.Dojo Toolkit과 JSON을 사용하고 있습니다.

RPC보다 REST 또는 RPC보다 REST를 선택해야 하는 이유는 무엇입니까?

그것을 이해하는 가장 좋은 방법은 Roy T를 읽는 것이다.이에 대한 Fielding의 논문 또는 순수 REST 아키텍처와 단순 RPC 아키텍처의 차이점을 설명하는 블로그 관련 기사.

또 다른 주목할 점은 REST에 관한 위키피디아 기사가 암울한 상태이고 REST의 '발명자'인 필딩은 그 기사가 부정확하다는 것을 암시한다.

REST에서 사람들이 놓치는 가장 큰 것은 발견 가능성입니다.리소스는 대역 외 및 비표준화된 URI 명명 규칙에 의존하지 않고 하이퍼텍스트 내에 다른 관련 리소스에 대한 URI를 포함해야 합니다.

SOAP이나 XML-RPC와 같은 일반적인 RPC 구현의 큰 문제는 PUT, GET, DELETE 등의 HTTP의 모든 다른 속성을 이용하는 것이 아니라 자체 아키텍처에서 HTTP를 사용한다는 것입니다.따라서 이것은 기존의 웹 스택에도 맞지 않습니다.예를 들어 RPC 콜의 내용을 모르면 중앙의 캐시 서버가 동작하지 않습니다.

이것은 REST와 RPC에 대한 불완전한 소개입니다만, 저는 종종 놓치는 몇 가지 중요한 점을 강조했다고 생각합니다.REST에는 잘못된 정보가 많이 있으므로 주의해 주십시오.

그렇다고 REST가 모든 것을 위한 것은 아닙니다.아키텍처이기 때문에 구현 방법이 다소 유연합니다.다만, 주로 리소스로서 액세스 할 수 없는 경우는, REST가 적합하지 않거나, 애플리케이션의 일부에만 적합한 경우가 있습니다.

음...간단히 말하자면, 둘 다 매우 추상적인 모델이다...너무 추상적이어서 어디서든 자연스럽게 일어난다...

REST는 글로벌 식별자(HTTP의 경우 URI)로 어드레스되는 자원을 CRUD 방식으로 액세스 하는 아이디어입니다(HTTP의 경우 POST, GET, PUT 및 DELETE를 사용).최소한 그런 생각입니다.

RPC는 다른 머신에서 프로시저를 호출하여 일부 파라미터를 전달하고 반환값을 얻는 개념입니다.

위키피디아에는 아주 짧은 비교가 있다.

Persevere는 두 가지 모두(매우 우아한 방법으로) 허용하는 서비스를 만듭니다.RESTful(이것을 실현하기 위해서 HTTP 기능만을 사용하는 것은 아니지만)이며, RPC 인터페이스를 공개합니다.

마지막으로 어플리케이션이 무엇을 해야 하는지 살펴봐야 합니다.대부분의 사용자라면 RPC API(XML 또는 JSON에 기반하든 상관없이)를 사용하게 될 것입니다.이 API에는 부분적으로 RESTful 서브시스템의 트랜스포트 레이어가 포함되어 있습니다.이는 RESTfulnes는 유연성을 의미하기 때문입니다.클라이언트가 (심플한 CRUD 메서드 세트를 통해) 서버상의 데이터를 어느 정도 자유롭게 통과할 수 있는 경우 API를 통해 공개되는 제한적인 (문제 고유의) 메서드 세트에 의존하지 않고 논리 클라이언트의 방향을 전환할 수 있습니다.

서비스에는 세 가지 다른 스타일이 있습니다.

  • RPC API - 클라이언트가 프로시저와 파라미터를 서비스로 전송하고 서비스는 명령어 실행 및 결과 반환을 담당합니다.
  • Message API(Document API) - 클라이언트는 일반적으로 RPC API 호출보다 복잡한 구조인 DOM(Elements)을 전송합니다.DOM(Elements)은 조작을 직접 암시하지 않는 경향이 있기 때문입니다.
  • 리소스 API - 리소스(데이터베이스 탭, 파일, 이미지 등)에 액세스하는 데 사용됩니다.일반적으로 미디어 타입의 네고시에이션도 유효합니다.

SOAP과 REST는 W3C의 표준을 정리한 것입니다.주요 차이점은 SOAP은 HTTP, SMTP 등을 전송 프로토콜로 사용하고 REST는 이를 애플리케이션 프로토콜, 즉 지원해야 할 AKA(GET, PUT, PUSH, DELETE 및 POST)로 사용합니다.또한 SOAP은 XML을 사용하고 REST는 모든 데이터 유형(JSON, XML, HTTP 등)을 사용할 수 있음을 의미합니다.또한 SOAP의 주요 장점 중 하나는 Service Descriptor(WSDL 파일)입니다.이것에 의해, 클라이언트에 서비스 커넥터(프록시)가 자동적으로 생성될 가능성이 있습니다.

서비스의 유형과 아키텍처는 실제 클라이언트와 테크놀로지 요건에 따라 달라집니다.

이 주제에 대한 일반적인 아이디어는 Martin Fowler의 시그니처북 중 하나인 Service Design Patterns를 참조하십시오.

언급URL : https://stackoverflow.com/questions/1098473/rest-vs-rpc-in-php