REST SERVICES- 비다 데이터 노출“행동”
-
20-09-2019 - |
문제
일반 엔티티 상호 작용을 수행하는 데 REST를 사용하는 방법을 이해합니다. URLS 이름을 사용하여 엔티티 및 HTTP 동사를 사용하여 해당 엔티티의 작업에 매핑됩니다. 그러나 RPC와 비슷한 "행동"을 보는 일반적으로 인정되는 방법은 무엇입니까?
예를 들어, 장치가 재설정하도록 명령을 보내고 싶다고 가정 해 봅시다. 여기에 실제 "엔티티"가 없거나 게시물과 같은 일을합니까? http://mydevice/device/reset?
해결책
/device/reset
또는 /system/reset
괜찮습니다.
나머지 "디자인 패턴"은 동사를 사용하지 않도록 권장합니다.
POST http://mydevice/system/state
<stateType>RESET</stateType>
관련 정보:
- 동사없이 REST URL을 만드는 방법?
- 스레드 태그 편안한 구경
다른 팁
나는 그것이 포스트를 사용하는 경우라고 생각하지 않습니다. "재설정 조치"는 Idempotent 조치입니다 (N TimeS라고 부르는 경우 항상 동일한 결과를 얻을 수 있습니다). 따라서 IMHO는 Put Call을 사용하여 POT가 사용하지 않으므로 POST는 Idempotent가 아닙니다).
또한 자원을 넣을 때 사용할 수 있습니다.
PUT http://system
<device>
<status>RESET</status>
</device>
또는
PUT http://system/status/reset
그러나 첫 번째는 "더 편안하다"고 생각합니다.이 자원은 리소스를 넣고 있기 때문에 URL을 사용하는 두 번째는 리소스를 사용합니다.
나는 보통 엔티티 "시스템"또는 그와 비슷한 것을 지명합니다. 따라서 "/System/Reset"을 수행합니다. 당신은 장치도 선택했습니다.
그러나 예, 나는 보통 이러한 유형의 행동이 게시물을 사용하는 업데이트로 간주합니다. 그래서 나는 당신이 /장치 /재설정에 게시 할 권리가 있다고 생각합니다.