Blogger API: 시작하기

이 문서에서는 Blogger API를 사용하는 방법을 설명합니다.

시작하기 전에

Google 계정 만들기

Google 계정이 설정되어 있어야 합니다. 실수로 인한 데이터 손실을 방지하려면 개발 및 테스트 목적으로 별도의 Google 계정을 사용하는 것이 좋습니다. 이미 테스트 계정이 있다면 Blogger 사용자 인터페이스에서 테스트 데이터를 설정, 수정, 확인할 수 있습니다.

Blogger 익히기

Blogger 개념에 익숙하지 않은 경우 이 문서를 읽고 사용자 인터페이스를 실험한 후 코드를 시작하세요. 이 문서에서는 사용자가 Blogger, 웹 프로그래밍 개념 및 웹 데이터 형식에 익숙하다고 가정합니다.

요청 승인 및 애플리케이션 식별 알아보기

애플리케이션이 비공개 데이터를 요청할 때는 해당 데이터에 액세스할 수 있는 인증된 사용자가 요청을 승인해야 합니다.

애플리케이션이 공개 데이터를 요청하는 경우 해당 요청을 승인할 필요는 없지만 API 키와 같은 식별자가 수반되어야 합니다.

요청을 승인하고 API 키를 사용하는 방법에 관한 자세한 내용은 API 사용 문서의 요청 승인 및 애플리케이션 식별을 참고하세요.

Blogger API 배경

Blogger 개념

Blogger는 5가지 기본 개념을 기반으로 합니다.

  • 블로그: API의 루트 개념입니다. 블로그에는 게시물과 페이지가 있습니다. 블로그 이름 및 설명과 같은 블로그 메타 정보를 위한 컨테이너입니다.
  • 게시물: 블로그 게시물은 블로그 작성자가 만든 게시 가능한 항목입니다. 이 정보는 시기적절하게 작성되어 저자가 전 세계에 게시하고자 하는 내용을 반영합니다. 시간이 지나면서 블로그에서 콘텐츠 연령을 게시하고 이에 대한 관련성이 떨어지는 것으로 파악되었습니다.
  • 댓글: 댓글은 블로그 게시물 작성자 이외의 사용자가 작성자의 글에 반응하는 곳입니다. 벽돌에서 꽃다발까지 모든 것이 있습니다.
  • 페이지: 페이지는 약력 정보 또는 사용자에게 문의하는 방법과 같은 정적인 콘텐츠를 위한 장소입니다. 이는 대개 시간이 지나도 바뀌지 않는 정보이며,
  • 사용자: 사용자는 작성자, 관리자, 독자 역할 등 Blogger와 상호작용하는 사용자입니다. 공개 블로그의 경우 독자가 익명일 수 있지만 비공개 블로그에서는 Blogger가 독자를 식별해야 합니다.

Blogger API 데이터 모델

리소스는 고유 식별자가 있는 개별 데이터 항목입니다. Blogger JSON API는 5가지 유형의 리소스에서 작동합니다.

  • 블로그 리소스: 블로그를 나타냅니다.
  • 게시물 리소스: 게시물을 나타내며 각 게시물 리소스는 블로그 리소스의 하위 요소입니다.
  • 댓글 리소스: 특정 게시물의 댓글을 나타냅니다. 각 댓글 리소스는 게시물 리소스의 하위 요소입니다.
  • 페이지 리소스: 정적 페이지를 나타냅니다. 각 페이지 리소스는 블로그 리소스의 하위 요소입니다.
  • 사용자 리소스: 익명이 아닌 사용자를 나타냅니다. 페이지, 게시물 또는 댓글의 작성자를 식별하는 데 사용됩니다.
블로그 리소스에는 두 가지 하위 리소스 유형인 페이지와 게시물이 있습니다.
          게시물 리소스에는 댓글 리소스 하위 요소가 있을 수 있습니다.
리소스 간 관계 개요

Blogger API 데이터 모델은 컬렉션이라는 리소스 그룹을 기반으로 합니다.

블로그 컬렉션
<span="apicollection"blogs 컬렉션은 사용자가 액세스 권한을 가진 모든 블로그로 구성됩니다. 사용자별로 블로그를 나열하거나 ID로 단일 블로그를 검색할 수 있습니다.</span="apicollection">
게시물 컬렉션
게시물 컬렉션은 특정 블로그 리소스 내의 모든 게시물 리소스로 구성됩니다.
댓글 컬렉션
댓글 컬렉션은 특정 게시물 리소스 내의 모든 댓글 리소스로 구성됩니다.
페이지 컬렉션
페이지 컬렉션은 특정 블로그 리소스 내의 모든 페이지 리소스로 구성됩니다.
사용자 컬렉션
사용자 컬렉션은 Blogger의 모든 사용자 리소스로 구성되므로 나열할 수 없습니다. 사용자는 ID 또는 식별자 self를 사용하여 자신의 사용자 리소스(다른 사람은 없음)를 검색할 수 있습니다.

Blogger API 작업

다음 표에 설명된 대로 Blogger API의 컬렉션 및 리소스에서 다양한 메서드를 호출할 수 있습니다.

작업 설명 REST HTTP 매핑
list 컬렉션 내의 모든 리소스를 나열합니다. 컬렉션 URI의 GET
get 특정 리소스를 가져옵니다. 리소스 URI의 GET
getByUrl 리소스를 가져와 URL로 조회합니다. URL이 매개변수로 전달된 GET
getByPath 경로에서 검색하여 리소스를 가져옵니다. 경로가 매개변수로 전달된 GET
목록 사용자 사용자가 소유한 리소스를 나열합니다. 사용자 소유 컬렉션에 GET
search 쿼리 매개변수를 기준으로 리소스를 검색합니다. 검색어가 매개변수로 전달된 검색 URL의 GET
삽입 컬렉션에 리소스를 만듭니다. 컬렉션 URI의 POST
delete 리소스를 삭제합니다. 리소스 URI의 DELETE
패치 패치 시맨틱스를 사용하여 리소스 업데이트 리소스 URI의 PATCH
업데이트 리소스를 업데이트합니다. 리소스 URI의 PUT

아래 표에는 각 리소스 유형에서 지원되는 메서드가 나와 있습니다. 비공개 블로그의 모든 listget 작업에는 인증이 필요합니다.

리소스 유형
지원되는 메서드
목록 get getByUrl을 참고하세요 getByPath를 참조하세요. listByUser 목록을 검색 삽입 삭제 패치 업데이트
블로그 아니요 아니요 아니요 아니요 아니요 아니요 아니요
게시물 아니요 아니요
주석 아니요 아니요 아니요 아니요 아니요 아니요 아니요 아니요
페이지 아니요 아니요 아니요 아니요 아니요 아니요 아니요 아니요
사용자 아니요 아니요 아니요 아니요 아니요 아니요 아니요 아니요 아니요

호출 스타일

API를 호출하는 방법에는 여러 가지가 있습니다.

REST

REST는 데이터 요청 및 수정에 대한 간편하고 일관성 있는 접근 방식을 제공하는 소프트웨어 아키텍처 스타일입니다.

REST는 'Representational State Transfer'의 줄임말로, Google API의 맥락에서 REST는 HTTP 동사를 사용하여 Google이 저장한 데이터 표현을 검색 및 수정하는 방법을 의미합니다.

RESTful 시스템에서는 리소스가 데이터 저장소에 저장되고, 클라이언트는 서버에서 특정 작업(리소스 생성, 검색, 업데이트, 삭제 등)을 수행하라는 요청을 전송하며, 서버는 작업을 수행하고 응답을 전송합니다. 이 응답은 지정된 리소스 표현의 형식을 취하는 경우가 많습니다.

Google의 RESTful API에서는 클라이언트가 POST, GET, PUT 또는 DELETE과 같은 HTTP 동사를 사용하여 작업을 지정합니다. 전역적으로 고유한 다음 형식의 URI로 리소스를 지정합니다.

https://www.googleapis.com/apiName/apiVersion/resourcePath?parameters

모든 API 리소스에는 HTTP에서 액세스할 수 있는 고유 URI가 있으므로 REST는 데이터 캐싱을 지원하며 웹의 분산형 인프라와의 연동성이 뛰어납니다.

HTTP 1.1 표준 문서의 메서드 정의를 확인하면 유용합니다. 문서에 GET, POST, PUT, DELETE의 사양이 포함되어 있습니다.

Blogger API의 REST

지원되는 Blogger 작업은 Blogger API 작업의 설명대로 REST HTTP 동사에 직접 매핑됩니다.

Blogger API URI의 구체적인 형식은 다음과 같습니다.

https://www.googleapis.com/blogger/v3/users/userId
https://www.googleapis.com/blogger/v3/users/self
https://www.googleapis.com/blogger/v3/users/userId/blogs
https://www.googleapis.com/blogger/v3/users/self/blogs
https://www.googleapis.com/blogger/v3/blogs/blogId
https://www.googleapis.com/blogger/v3/blogs/byurl
https://www.googleapis.com/blogger/v3/blogs/blogId/posts
https://www.googleapis.com/blogger/v3/blogs/blogId/posts/bypath
https://www.googleapis.com/blogger/v3/blogs/blogId/posts/search
https://www.googleapis.com/blogger/v3/blogs/blogId/posts/postId
https://www.googleapis.com/blogger/v3/blogs/blogId/posts/postId/comments
https://www.googleapis.com/blogger/v3/blogs/blogId/posts/postId/comments/commentId
https://www.googleapis.com/blogger/v3/blogs/blogId/pages
https://www.googleapis.com/blogger/v3/blogs/blogId/pages/pageId

사용된 URI에 대한 자세한 설명과 API에서 지원되는 각 작업의 결과는 Blogger API 참조 문서에 요약되어 있습니다.

인증된 사용자에게 액세스 권한이 있는 블로그를 나열합니다.

GET https://www.googleapis.com/blogger/v3/users/self/blogs?key=YOUR-API-KEY

블로그 ID 3213900이 포함된 code.blogger.com 블로그의 게시물을 가져옵니다.

GET https://www.googleapis.com/blogger/v3/blogs/3213900?key=YOUR-API-KEY

자바스크립트의 REST

callback 쿼리 매개변수를 사용하고 콜백 함수를 제공하여 자바스크립트에서 Blogger API를 호출할 수 있습니다. 브라우저가 스크립트를 로드하면 콜백 함수가 실행되고 콜백 함수에 응답이 제공됩니다. 이 접근 방식을 사용하면 서버 측 코드 없이도 Blogger 데이터를 표시하는 리치 애플리케이션을 작성할 수 있습니다.

다음 예시에서는 YOUR-API-KEY를 API 키로 바꾼 후 code.blogger.com 블로그에서 게시물을 검색합니다.

<html>
  <head>
    <title>Blogger API Example</title>
  </head>
  <body>
    <div id="content"></div>
    <script>
      function handleResponse(response) {
        document.getElementById("content").innerHTML += "<h1>" + response.title + "</h1>" + response.content;
      }
    </script>
    <script
    src="https://www.googleapis.com/blogger/v3/blogs/3213900/posts/8398240586497962757?callback=handleResponse&key=YOUR-API-KEY"></script>
  </body>
</html>

데이터 형식

JSON

JSON(JavaScript Object Notation)은 특정 언어에 의존하지 않는 일반적인 데이터 형식으로, 임의의 데이터 구조를 간단한 텍스트로 표현할 수 있습니다. 자세한 내용은 json.org를 참조하세요.