API는 초콜릿 상자와 같아서 무엇을 얻는지 절대 알 수 없습니다.
2299 단어 discusswebdevdevjournalapi
문서화되지 않은 응답을 처리하는 것은 그리 큰 문제가 아닙니다. JSON을 시각화하고(예: JSON Crack ) 해당 스키마를 추론하는(예: MakeTypes ) 도구가 있습니다. 이미 설정한 가정을 완전히 버리는 극단적인 경우입니다.
최근에 나는 그런 API로 작업했습니다. 설명서에는 엔드포인트가 존재하고 일부 특정 매개변수가 필요하다고만 언급되어 있습니다. API의 이상한 맞춤형 인증 스키마를 파악한 후 끝점을 살펴보기 시작했습니다.
가장 먼저 눈에 띄는 것은 응답의 콘텐츠 유형이었습니다. API가 JSON으로 응답하는 동안
content-type
헤더는 응답을 HTML로 표시합니다. 이로 인해 대부분의 HTTP 클라이언트에서 자동 구문 분석(및 구문 강조 표시 및 서식 지정)이 중단되지만 응답은 여전히 수동으로 구문 분석할 수 있습니다. 일부 응답에 데이터와 함께 HTML 경고가 포함되었을 때 재미가 시작되었습니다. 예를 들면 다음과 같습니다.<br />
<b>Warning</b>: Undefined array key "TEST" in <b>/some/source/file</b> on line <b>123</b>
<br />
<br />
{"foo":"bar"}
기술적으로 API는 일관되게 동작했습니다. 즉, HTML로 응답한다고 주장했고 실제로 그렇게 했습니다. 그러나 실제로 이 동작은 API를 소비자에게 거의 쓸모 없게 만듭니다. 물론 응답을 검색하고 JSON 부분만 구문 분석할 수 있습니다. 영리한 해킹을 찾는 것은 재미있지만 일반적으로 장기적으로 지속 가능하지 않습니다. 소스 파일 구조를 노출하는 오류 메시지를 유지하는 것은 말할 것도 없이 security risk . API 제공자에게 문제를 보고했습니다(아무도 이전에 이 문제를 보고하지 않았다는 사실에 놀랐습니다). 그들은 응답에 신속했고 내 제안에 따라 API를 개선했습니다.
다른 개발자처럼 기술적 문제를 해결하는 것을 좋아하지만 때로는 사람들과 대화하는 것이 정말 더 쉽습니다. 그러나 문서화되지 않은 놀라운 동작을 하는 API를 조사하는 데 얼마나 많은 시간이 낭비되는지 생각하면 답답합니다. 또한 내부 및 파트너 API에 대해서도 더 나은 개발자 경험을 옹호해야 하지만 API를 .
이제 당신에게: 당신이 처리한 가장 이상한 API 동작은 무엇이었습니까?
표지 사진 출처: Lukas on Pexels .
Reference
이 문제에 관하여(API는 초콜릿 상자와 같아서 무엇을 얻는지 절대 알 수 없습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/superface/api-is-like-a-box-of-chocolates-you-never-know-what-you-get-31p6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)