2011-12-13 2 views
9

서비스 쪽 이벤트를 트리거하기위한 호출을하기 위해 API가 필요하고 클라이언트에서 정보 (인증 외)가 필요하지 않으며 반환 할 필요가없는 상황이 있습니다. 서버에 의해. 이것이 표준 CRUD/Resource 상호 작용에 잘 맞지 않기 때문에, 나는 이것을 내가 잘못된 것을하고 있음을 나타내는 지표로 받아 들여야 하는가, 아니면 이러한 조건들을 다루는 RESTful 디자인 패턴이 있는가?서버 쪽 이벤트를 트리거하는 RESTful 방법

답변

0

REST는 클라이언트와 서버 간의 통신 특성을 정의합니다. 이 경우 문제는 전송할 정보가 없다고 생각합니다.

고객이이 작업을 처음부터 시작해야하는 이유가 있습니까? 귀하의 서버 측 이벤트가 서버 내에 완전히 포함되어야한다고 말하고 싶습니다. 아마도 cron 호출로 주기적으로 킥오프 하시겠습니까?

+2

전송할 정보가 없다고해서 클라이언트가 전화를 걸 수 없다는 의미는 아닙니다. 서버 측의 가상 컴퓨터 리소스에 대한 "재부팅"트리거에 대해 생각해보십시오. 그런 것들. – RayLuo

9

클라이언트는 할 수 있습니다

POST /trigger 

서버는 202 Accepted로 응답 할 할.

그런 식으로 요청에 여전히 적절한 인증 헤더가 포함될 수 있으며 클라이언트가 엔티티를 제공해야하거나 미래에 API를 확장 할 수 있거나 이벤트 상태를 쿼리하는 방법에 대한 정보가 포함 된 응답을 반환해야하는 경우 .

여기서 무엇을하려고하는지에 대해 "비 RESTful"이 아닙니다. REST 원칙은 리소스에 대한 CRUD 작업과 상관 관계가 없습니다.


spec for 202는 말한다 :

엔티티는 요청의 현재 상태의 표시 및 상태에 대한 포인터 중 하나 를 모니터링하거나 사용자가 할 수있는 몇 가지 추정을 포함해야이 응답으로 반환 요청이 으로 처리 될 것으로 기대하십시오.

정의에 "SHOULD"가 있으면 응답 할 때 아무 것도 보내지 않아도됩니다.

관련 문제