모바일 클라이언트를위한 일련의 웹 서비스를 개발 중이며 요구 사항에 따라 모든 요청에 포함시키고 특정 요청에 저장하고 다른 결과를 필터링하는 데 사용되는 고유 한 장치 ID가 필요합니다.
모든 요청에 포함되기 때문에 사용자 정의 HTTP 헤더에 넣을 것을 제안 했으므로 주어진 데이터가 헤더 또는 다른 데이터와 함께 있는지 여부를 결정하는 데 어떤 기준이 사용 될지 궁금해지기 시작했습니다. 요청 본문
그러한 기준이 있습니까?
모바일 클라이언트를위한 일련의 웹 서비스를 개발 중이며 요구 사항에 따라 모든 요청에 포함시키고 특정 요청에 저장하고 다른 결과를 필터링하는 데 사용되는 고유 한 장치 ID가 필요합니다.
모든 요청에 포함되기 때문에 사용자 정의 HTTP 헤더에 넣을 것을 제안 했으므로 주어진 데이터가 헤더 또는 다른 데이터와 함께 있는지 여부를 결정하는 데 어떤 기준이 사용 될지 궁금해지기 시작했습니다. 요청 본문
그러한 기준이 있습니까?
답변:
정보가 중요하면 몸에 넣어야합니다.
왜?
선이 다소 흐릿한 반면 필자의 경험으로는 비즈니스 로직이 작동하는 데이터가 본문에 있어야하고 메타 데이터를 헤더에 넣을 수 있어야합니다.
그것을 보는 또 다른 방법은 특정 종류의 요청에만 나타나는 데이터가 본문에 있어야하고 전체 응용 프로그램에서 일관되게 처리되는 데이터는 헤더에 들어가야한다는 것입니다.
또 다른 관점은 다음과 같습니다. 예를 들어 응용 프로그램이 아닌 라우터 / 방화벽에 의해 데이터 조각이 전체적으로 처리된다고 상상할 수 있습니까? 그렇다면 본문이 아닌 헤더에 들어가야합니다.
이러한 규칙을 적용하는 몇 가지 예는 다음과 같습니다.
고유 한 장치 ID에 대한 질문으로 돌아가십시오. 예를 들어 로깅 전용으로 어디에서나 일관된 방식으로 사용되는 경우 헤더에 넣을 수 있습니다. 그러나 엔드 포인트에 따라 다른 방식으로 요청을 필터링하는 데 사용되는 경우 본문에있는 것이 좋습니다. 물론 두 가지 사용 사례가 모두 있다면 API 사용자가 동일한 데이터를 두 곳에 두도록 강요하는 것보다 한 가지 방법으로 (아마 헤더) 전달하는 것이 좋습니다. 일관되지 않은 입력 또는 어떤 종류의 검증 구현.
클라이언트 요청의 내용 동일한 서버에 대한 여러 요청에서 변경되지 않는 HEADER의 일부가됩니다 (예 : 자격 증명). 요청마다 자주 변경되는 다른 항목은 BODY의 일부입니다.
또는
메시지 / 본문 콘텐츠의 속성이 헤더로 이동합니다. 예) 인코딩 유형, 내용 길이, 내용 유형.
과
귀하의 경우 필터 매개 변수와 같은 URL에 쿼리 / 요청 매개 변수로 추가해야합니다.
/mobiles?type=MOTO&colour=black
편안한 서비스에서 URL 자체는 객체를 참조합니다
/conferences/{conference_id}
-> 특정 회의를 나타냅니다