엔티티 본문없이 HTTP POST를 수행하는 것은 나쁜 습관으로 간주됩니까?
사용자의 입력이 필요없는 트리거 만 프로세스를 호출해야합니다. 본문없이 POST / uri를 사용하여 프로세스를 트리거 할 계획입니다. 이것이 HTTP 및 REST 관점 모두에서 나쁜 것으로 간주되는지 알고 싶습니다.
내가 물었다 이 질문을 몇 달 전 IETF HTTP 워킹 그룹에. 짧은 대답은 : 아니요, 나쁜 습관은 아닙니다 (그러나 자세한 내용은 스레드를 읽는 것이 좋습니다).
GET 대신 POST를 사용하면 서버 (및 게이트웨이)가 캐시 된 응답을 반환하지 않도록 지시하기 때문에 완벽하게 합리적입니다.
POST는 완전히 정상입니다. POST와 GET의 차이점은 시스템 상태를 변경하는 것입니다 (거의 트리거가 무언가를 "하고"데이터를 변경하는 것 같습니다).
페이로드없이 이미 POST를 사용했으며 "느낌"이 좋습니다. 페이로드없이 POST를 사용할 때 수행해야 할 한 가지 : Pass header Content-Length: 0
. api-client가 통과하지 못했을 때 일부 프록시 관련 문제를 기억합니다.
본문없이 POST / uri를 사용하는 경우 인수를 사용하지 않는 함수를 사용하는 것과 같습니다. 예 : int post (void); 따라서 인수없이 객체의 상태를 변경할 수있는 리소스 클래스에 기능을 갖는 것이 합리적입니다. URI에 대해 Unix touch 기능을 구현하려는 경우 좋은 선택이 아닙니까?
예, 본문없이 POST 요청을 보내고 대신 쿼리 문자열 매개 변수를 사용하는 것이 좋습니다. 그러나 매개 변수에 HTTP가 아닌 문자가 포함되어 있으면 인코딩해야합니다.
예를 들어 'hello world'를 게시하고 끝점을 게시해야하는 경우 http://api.com?param=hello%20world 와 같이 표시해야합니다.
'programing tip' 카테고리의 다른 글
기능 A가 기능 B에만 필요한 경우 A를 B 내부에 정의해야합니까? (0) | 2020.06.22 |
---|---|
지역 변수에 초기화가 필요한 이유는 무엇입니까? (0) | 2020.06.21 |
IE9의 자리 표시 자 (0) | 2020.06.21 |
목록보기가 데이터로로드되기 전에 목록보기가있는 활동에서 진행률 표시 줄 (원)을 표시하는 방법 (0) | 2020.06.21 |
android.view.InflateException : 이진 XML 파일 : 클래스 조각 팽창 오류 (0) | 2020.06.21 |