이전에는 노션의 데이터베이스만 사용했었는데,
리팩토링을 계속 진행하다보니, Supabase를 도입하게 됐습니다.
그래서 Notion의 데이터베이스에서 가져오던 대부분의 데이터를 Supabase의 데이터베이스로 옮기고,
프로젝트 관련 내용들만 노션의 프로젝트 데이터베이스를 사용하고 있었습니다.
지금 당장 만들때는 좀 귀찮아도 나중에 게시물을 업데이트해야할 때 편하려고 Notion API를 도입했던건데,
Notion 특성 상, 두 문장을 가져오는 데도 코드가 길어지는 문제점이 있었습니다.
그리고 프로젝트에 대한 상세한 글을 노션에서도 작성해서 관리하고,
Github에서도 README.md를 통해 작성해서 관리해야한다는 것을 깨달았습니다.
초기에 이 사이트 구상을 할 때 제일 메인이 Notion이었던 만큼 고민이 됐지만,
아무리 생각해도 사용을 안 하는 쪽이 더 편하고 효율적이라는 생각이 들었습니다.
자, 그래서
Github API를 사용하면 얼마나 간결해지냐?
함수 하나면 된다!
(물론 레포까지 접근할 때도 다른 api를 사용하겠지만)
단순히 마크다운 파일을 가져와서 변환하여 출력하는 작업이
api 하나만으로 해결된다니!
저는 Octokit.js를 사용해서 REST API를 사용할 것 입니다.
사이트는
https://docs.github.com/en/rest/quickstart?apiVersion=2022-11-28
보면 됩니다!
.
.
.
일단, access token을 발급받아 봅시다.
1. access token 발급받기
발급받을 수 있는 토큰이 두 가지가 있습니다.
- Fine-grained personal access token
- Personal access tokens
뭐가 더 좋다기 보다는
각자의 상황에 맞게 사용하면 될 것 같습니다.
Fine-grained personal access token | Personal access tokens |
보안 ⬆️ | 보안 ⬇️ |
하나의 토큰은 하나의 user나 organization의 리소스에 접근 가능 | 내 계정이 접근할 수 있는 레포지토리 전부 접근 가능 |
제어 범위 ⬆️ - 더 세밀한 제어 가능 | 제어 범위⬇️ |
만료 기한이 있어야 한다 | |
안되는 REST api가 있다 (가능한 api - https://docs.github.com/en/rest/authentication/endpoints-available-for-fine-grained-personal-access-tokens?apiVersion=2022-11-28) |
발급받는 방법은 공식문서에 사진과 함께 너무 잘 나와있습니다. 영어가 어렵더라고 사진보면서 따라가면 돼요. 공식문서
2. octokit 설치하기
npm install octokit
3. Octokit import 후 인스턴스 생성
import { Octokit } from 'octokit';
const octokit = new Octokit({
auth: 'YOUR-TOKEN'
});
4. request 할 때 octokit.request 사용
await octokit.request("GET /repos/{owner}/{repo}/issues", {
owner: "octocat",
repo: "Spoon-Knife",
});
준비는 끝났습니다!
'Projects > 개인 포트폴리오 사이트 만들기' 카테고리의 다른 글
Github REST API 사용하기(1) (0) | 2024.01.31 |
---|---|
SupaBase 에서 Google OAuth 사용하기 (0) | 2024.01.23 |
[ React ] hover 구현하기 (0) | 2024.01.22 |
방명록 추가하기 (0) | 2024.01.17 |
노션을 데이터베이스로 사용하는 포트폴리오 사이트 만들기(3) - 기존에 만든 포트폴리오 사이트 리팩토링 (0) | 2023.11.21 |