따라서 RESTful 서비스에는 어휘에 고정 된 동사 세트가 있습니다. RESTful 웹 서비스는이를 HTTP 메소드에서 가져옵니다. 고정 어휘를 정의하면 몇 가지 장점이 있지만 실제로 요점을 이해하지는 못합니다. 누군가가 그것을 설명 할 수 있습니다.
각 주에 대해 어휘를 동적으로 정의하는 것보다 REST로 설명 된 고정 어휘가 더 나은 이유는 무엇입니까? 예를 들어 객체 지향 프로그래밍은 널리 사용되는 패러다임입니다. RPC는 고정 인터페이스를 정의하기 위해 설명되었지만 사람들이 RPC가 이러한 제약 조건에 의해 제한된다고 가정하는 이유를 모르겠습니다. RESTful 서비스가 컨텐츠 구조를 동적으로 설명하는 것처럼 인터페이스를 동적으로 지정할 수 있습니다.
REST는 어휘를 확장하지 않고도 성장할 수 있다는 장점이 있습니다. RESTful 서비스는 더 많은 리소스를 추가하여 동적으로 성장합니다. 객체 별 어휘를 동적으로 지정하여 서비스를 확장 할 때 무엇이 잘못 되었습니까? 왜 우리는 객체에 어휘로 정의 된 메소드를 사용하고 서비스가 클라이언트에게 이러한 메소드가 무엇인지 그리고 부작용이 있는지 여부를 설명하도록하지 않습니까?
본질적으로 서버 측 리소스 구조에 대한 설명이 어휘의 정의와 동일하다는 느낌이 들지만 이러한 리소스와 상호 작용할 수있는 제한된 어휘를 사용해야합니다.
고정 어휘는 실제로 클라이언트의 문제를 서버의 문제와 분리합니까? 확실히 서버의 일부 구성과 관련이 있어야합니다. 이것은 일반적으로 RESTful 서비스의 리소스 위치입니다. 동적 어휘 사용에 대한 불만은 어쨌든이 구성을 이해하는 방법을 동적으로 추론해야하기 때문에 불공평 해 보입니다. RESTful 서비스는 하이퍼 미디어를 통해 객체 구조를 식별하여 수행 할 수있는 전환을 설명합니다.
RPC와 같은 서비스에서 쉽게 잘 작동 할 수있는 자체 설명 동적 어휘보다 고정 어휘를 더 잘 만드는 것이 무엇인지 이해하지 못합니다. 이것은 HTTP 프로토콜의 제한 어휘에 대한 잘못된 추론입니까?
반사
내 생각을 내가 한 것보다 조금 더 명확히하기 위해서. 웹용이 아닌 범용 API를 설계한다고 가정 해 봅시다. 누군가 객체에서 이러한 메소드 이름 만 사용할 수 있다고 말하면 기쁠까요? REST는 HTTP로 제한되지 않지만 작성하는 모든 API, 웹 연결 또는 단순히 GET POST PUT 및 DELETE 메소드가 포함 된 객체로 구성된 상황을 고려하십시오. 따라서 정의하려는 object.foo 메소드는 불가능합니다. foo라는 새 객체를 정의하고 GET 메소드를 호출해야합니다. 이것이 본질적으로 REST의 작동 방식이며, 그것에 대해 생각하기가 약간 불편합니다. 당신은 foo가하는 일에 대해 더 잘 이해하지 못하고, 부모 객체의 메소드가 무엇인지에 대한 새로운 객체를 만들도록 강요당했습니다. 또한 API는 그다지 복잡하지 않습니다. 더 많은 객체를 만들어 인터페이스 복잡성을 숨겼습니다. RESTful 웹 서비스는 우리가 노출하는 API의 맥락에서 충분하거나 충분하지 않은 인터페이스를 채택하도록 강요합니다. 웹 대면 API를 사용하여이를 수행하는 데는 적절한 이유가있을 수 있지만 모든 범용 API에서 모든 오브젝트에 대해 표준 인터페이스를 채택하지 않는 것이 좋습니다. 실제적인 예가 이해 될 것이다.