API 키-컨텐츠 또는 헤더


14

현재 API 작업을하고 API 키를 전송하기에 가장 좋은 장소에 대한 의견을 모으고 싶었습니다. URL에 들어가면 안된다는 것을 알고 있습니다.이 경우 요청 헤더 또는 메시지 본문이 남습니다.

헤더에 넣으면 모든 서비스에서 사용할 수있는 일반적인 방법을 취할 수 있지만 본문에서 (예 : JSON 문자열의 일부로 포함 된 사양) POST 본문의 직렬화 된 객체).


또한 모든 요청 유형에 본문이있는 것은 아니며 본문이없는 요청의 유효성을 검사하려면 키가 헤더에 있어야합니다.
Whymarrh

답변:


11

HTTP에는 이에 대한 Authorization헤더가 있습니다.

일반적으로 사용자의 자격 증명을 제공하는 데 사용되지만 API의 경우 클라이언트의 ID와 해당 API 키를 포함 할 수 있습니다.

몇 가지 이점이 있습니다.

  • 다른 프레임 워크에서 지원합니다. 많은 프레임 워크는 Authorization인증을 수행하기 위해 헤더를 기대 합니다. 사용하지 않으면 추가 코드를 작성하여 해당 프레임 워크에 사용자 정의 값을 제공합니다.

  • 다른 도구에서 지원합니다. 예를 들어 CURL.

  • "WTF는 어디에서이 API 키를 찾거나 넣습니까?" 팀에 합류하는 새로운 개발자 (또는 API를위한 새로운 클라이언트를 설계하는 개발자)로부터

  • 당신은 다음과 같은 HTTP 상태 코드 정의를 사용할 수 있습니다 401 Unauthorized, 어떤을 위해 :

    응답에는 반드시 WWW-Authenticate 헤더 필드가 포함되어야합니다. [...] 클라이언트는 적절한 Authorization 헤더 필드로 요청을 반복 할 수 있습니다.

요청 본문으로 옮기면 빠르게 고통 스러울 수 있습니다. 대부분의 프레임 워크와 도구는 요청에 본문을 추가하는 것이 매우 간단하지 않으므로 API를 필요 이상으로 어렵게 만들 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.