Settings -> Developer settings -> Personal access tokens
로 이동하여,Generate new token
을 클릭하면, 위와 같은 화면이 나타난다.Note
에 원하는 토큰 이름을 적고, scope
를 선택해주자.repo
만 선택하고 생성하였다.토큰 값
이 나타난다.Github API 는 인증을 하지 않아도 사용할 수 있다.
그러나 인증을 하지 않으면, 요청이 1시간에 60번으로 제한된다.
인증을 할 경우 1시간에 5000번까지 요청할 수 있다.
ISSUE
를 활용해보겠다.
ISSUE
를 클릭하면, issue 를 활용한 api들을 확인할 수 있다.repository의 이슈 리스트
를 만들 것이므로, List repository issues
를 클릭한다.
List repository issues
에 대한 사용방법이나 주의사항이 처음에 나온다.GET /repos/:owner/:repo/issues
이와 같은 방식으로 API 를 요청하라는 의미이다.hyun-jii
이고, repositoy의 이름이 test
라면https://api.github.com/repos/hyun-jii/test/issues
GET
방식으로 요청하는 것이다.
type
과 설명이 나와있다.
<h1>Issue List</h1>
<div class="container"></div>
$(document).ready(function () {
var auth = window.btoa("hyun-jii: 토큰 값 ");
$.ajax({
type: "GET",
headers: {
Authorization: "Basic " + auth,
},
url: "https://api.github.com/repos/hyun-jii/CRESCENDO/issues",
dataType: "json",
success: function (response) {
var array = response;
for (var i = 0; i < array.length; i++) {
$(".container").append("<p>" + array[i].title + "</p>");
}
},
});
});
GET
방식으로 지정된 형식의 URL
을 요청하고, headers
에서 토큰을 인증한다.
window.btoa()
는 Base64 인코딩 메소드이다.
title
을 추출하였다.user 의 id
를 구하고 싶다면, array[i].user.idlabel name
을 구하려면 이중 반복문을 활용하여 array[i].label[j].name 으로 추출한다.
issues?stae=all
이 외에도 page 설정이나 라벨등 다양한 설정 방법이 있으니 문서를 참고해보자. https://developer.github.com/v3/auth/
Basic Authentication
을 이용하여 인증하였다. var auth = window.btoa("hyun-jii: 토큰 값 ");
headers: {
Authorization: "Basic " + auth
}
Base64
인코딩을 통해 인증하는 방식은 위와 같은 방식으로 사용한다.Base64
인코딩은 복호화가 가능하여 보안이 취약하다.
https://developer.mozilla.org/ko/docs/Web/HTTP/Authentication
잘 정리해주셔서 감사합니다~
다른 팀과 공유할 수 있는 뷰어를 만들어도 재밌을 것 같아요!