클라이언트는 'application / json'의 승인 헤더와 'application / json'의 컨텐츠 유형으로 지속적으로 요청합니다.
예, 이것이 올바른 일이지만 벤더가 관심을 갖는 것은 아닙니다. 나는 좌절감을 완전히 이해하고 있지만 JSON 서비스는 항상 JSON 응답을 제공해야하지만 그렇지 않은 많은 예가 있다고 생각하기 때문에.
프로젝트 전반에 걸쳐 동일한 방법이 두 개의 다른 공급 업체와 두 개의 다른 서비스에 적용되었습니다. 서비스를 변경해야하는 이유를 정당화해야한다는 것을 알았습니다. 벤더들은 클라이언트가 이것에 대처해야한다고 말했고 기본 REST 라이브러리는 기본적으로 'out the box'에 대응하지 않기 때문에 (RestEasy) 질문되었습니다 (RestEasy).
글쎄, 나는 공급 업체에 동의해야한다. 그것은 그들의 서비스이며 그것을 사용하기위한 특별한 경우를 명확하게 문서화하는 한 실제로 그것을 변경하도록 강요 할 수는 없습니다. 개발자가 자신의 API를 채택하는 데 시간이 오래 걸리고 개발자가 필요로하는 것을 들으면 API를 변경하더라도 표준을 따라야한다는 규칙은 없습니다.
문제는 뭔가 빠졌습니까?
요청 헤더는 다른 쪽 끝에서 올바르게 중단되지 않는 한 아무 의미도 없습니다. PHP를 사용하여 웹 API를 개발하면 요청 헤더를 사용하지 않아도됩니다. 내가 원하는대로 응답 할 수 있습니다. 반면 C #으로 IIS에 구성된 서비스는 요청 헤더, 유형 및 응답 유형을 훨씬 쉽게 처리 할 수 있습니다. 벤더가 API를 빌드하는 데 사용한 도구와 관련이 있습니다.
나는 이것에 대해 현혹되고 있습니까?
예, 아니오. 과거를 지나칠 수없는 개발자 친구가 있습니다. API는 문제로 인해 고쳐지고 API가 작동 할 것으로 예상 될 때까지 다른 작업을 진행할 수 없습니다. 이제는 농담입니다.
공급 업체가 작업을 완료하기 위해 "추가 작업"을 작성했기 때문에 문제가됩니다. 그것에 의해 누구나 좌절 할 것입니다. 내가 될 줄 알아
이 시나리오에서 컨텐츠 유형의 application / json이없는 JSON API를 사용하는 것이 좋습니까?
물론 좋은 습관은 아닙니다.
클라이언트는 컨텍스트 유형이 무엇인지 서버에 알려줄 수 있습니다 request
. 에 콘텐츠 유형을 적용 할 수있는 기능이 없습니다 response
. 클라이언트는 accept
가능한 컨텐츠 유형의 모음을 서버에 알릴 수만 있습니다.
헤더 필드 정의
요청 헤더 승인 필드를 사용하여 응답에 적합한 특정 매체 유형을 지정할 수 있습니다. 수락 헤더는 요청이 인라인 이미지에 대한 요청의 경우와 같이 소량의 원하는 유형으로 특별히 제한됨을 나타내는 데 사용될 수 있습니다.
클라이언트가의 이미지를 요청할 수는 image/jpeg
있지만 서버 가 이미지를 찾지 못한 경우의 응답 text/html
및 상태 코드로 이미지를 요청할 404
수 있습니다. 서버가 잘못 응답 할 수도 있습니다. 찾을 수없는 파일에 대한 응답 text/html
및 상태 코드 가있는 Wordpress 웹 사이트가 많이 있습니다 200
.
이제는 서버 측의 모든 나쁜 연습입니다. 내가 당신에게 말하려고하는 것은 그것이 절대적으로 가능하고 자주 발생한다는 것입니다. 사람들은 이러한 것들을 구성 할 때 무엇을하고 있는지 모릅니다.
참고로 감사하겠습니다. 상업적 관점에서이 상황을 어떻게 해결합니까?
나는 몇 가지 프로젝트 에서이 문제에 부딪쳤다. 당신은 post
서버에 JSON 데이터와이 중 하나 JSON 또는 HTML 응답을 다시 제공합니다.
응답에 어떤 유형이 있는지 아는 것은 그리 중요하지 않습니다. 첫 번째 문자 {
이거나 [
JSON 인 경우 그렇다면 <
HTML이라고 가정 할 수 있습니다. 그것이 내가 과거에 처리 한 방법입니다. 때때로 API를 작성한 프로그래머는 HTTP 헤더에 대해 jack을 모두 알고 있습니다. 모든 것이 text/html
응답으로 돌아옵니다 . 운이 좋으면 Apache가 기본값으로 구성되어 text/plain
때로는 도움이 될 수 있습니다.
이러한 문제는 존재하며 앞으로도 계속 존재할 것입니다. 서버 간 통신은 지금까지 규제되지 않은 활동입니다. 잘못된 HTTP 응답을 제공하는 서버에 대한 노조에서 벤더를 쫓아내는 통치 기관은 없습니다.