더북(TheBook)

프로그래머라면 먼저 반사적으로 패키지를 찾고, 그 패키지를 코드에 통합하는 방법을 설명하는 문서를 확인한다. 이 대신, 새로운 API를 직접 발명해서 사용하면 결국 뒤에서 사용하는 라이브러리를 호출할 수 있다. API는 요구 사항에 맞게 최대한 단순해야 한다. 스스로 자신이 고객이라고 생각해 보자.

먼저 API의 요구 사항을 검토한다. 웹 기반 API는 애플리케이션에 권한을 부여하기 위해 웹에서 사용자 인터페이스를 제공한다. 트위터에서 권한을 요청하는 페이지를 열고 사용자가 확인하면 앱으로 다시 리디렉션한다. 즉, 인증을 위해 열어야 할 URL과 다시 리디렉션할 URL을 알아야 한다. 그런 다음 리디렉션된 페이지의 데이터를 사용하여 나중에 추가적으로 API를 호출할 수 있다.

일단 승인을 얻었다면 다른 것은 필요하지 않다. 이러한 목적을 떠올리며 다음과 같은 API를 상상해 보자.

코드 3-5 상상 속의 트위터 API

public class Twitter {
    public static Uri GetAuthorizationUrl(Uri callbackUrl) {    → 권한 부여 흐름을 처리하는 정적 함수
        string redirectUrl = "";
        // 리디렉션할 URL을 만들기 위해 여기서 무언가를 한다.
        return new Uri(redirectUrl);
   } 
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.