API Reference

이더.dev REST API

외부에서 블로그 글을 발행하고 조회할 수 있는 REST API. Bearer token 인증으로 쓰기 작업을 보호하며, 읽기는 누구나 가능합니다.

Base URL
https://radarlog.kr

Endpoints

POST/api/v1/posts Auth
GET/api/v1/posts
GET/api/v1/posts/:id

인증 (Authentication)

쓰기 API(POST)는 API Key 인증이 필요합니다. 관리자 페이지(/admin/settings)에서 발급받을 수 있습니다.

Request Header
Authorization: Bearer YOUR_API_KEY

글 발행

POST/api/v1/posts

Request Body

application/json
{
  "title": "글 제목",
  "content": "마크다운 본문",
  "category": "articles",
  "tags": ["태그1", "태그2"],
  "published": true
}

필수 필드

FieldTypeDescription
titlestring글 제목
contentstring마크다운 본문
categorystringcommits articles techlab casual

선택 필드

FieldTypeDescription
slugstringURL 슬러그 (미지정 시 제목에서 자동 생성)
subtitlestring부제목
excerptstring요약문 (미지정 시 본문 앞 200자)
coverImagestring커버 이미지 URL
publishedboolean발행 여부 (기본 false)
tagsstring[]태그 배열
repoNamestringGitHub 레포 이름
commitHashstring커밋 해시
commitUrlstring커밋 URL
filesChangednumber변경된 파일 수

Response

201Created
{
  "success": true,
  "data": {
    "id": "clxxx...",
    "slug": "글-제목",
    "title": "글 제목",
    "published": true,
    "createdAt": "2026-03-10T..."
  }
}
401Unauthorized
{
  "success": false,
  "error": "Invalid API key"
}

글 목록 조회

GET/api/v1/posts

인증 없이 누구나 조회 가능합니다.

Query Parameters

ParameterTypeDescription
categorystring카테고리 필터
tagstring태그 필터
publishedboolean발행 상태 필터
pagenumber페이지 번호 (기본 1)
limitnumber페이지당 개수 (기본 20, 최대 100)

Response

200OK
{
  "success": true,
  "data": [ ... ],
  "meta": {
    "page": 1,
    "limit": 20,
    "total": 42,
    "totalPages": 3
  }
}

curl 예시

Terminal
curl -X POST https://radarlog.kr/api/v1/posts \
  -H "Authorization: Bearer sk-abc123..." \
  -H "Content-Type: application/json" \
  -d '{
    "title": "테스트 글",
    "content": "## 제목\n본문 내용입니다.",
    "category": "articles",
    "tags": ["test"],
    "published": true
  }'

GitHub Webhook

API를 직접 호출하지 않아도, GitHub 레포에 push하면 AI가 자동으로 블로그 글을 생성합니다.

Setup

1. /admin/settings에서 GitHub 레포 등록

2. GitHub 레포 → Settings → Webhooks → Add webhook

3. Payload URL: https://radarlog.kr/api/webhooks/github

4. Content type: application/json

5. Secret: GITHUB_WEBHOOK_SECRET 값과 동일하게

6. Events: Just the push event

참고

  • 읽기(GET)는 인증 없이 누구나 호출 가능합니다.
  • 쓰기(POST)는 반드시 API Key가 필요합니다.
  • API Key는 관리자 페이지에서만 발급 가능하며, 발급 후 다시 확인할 수 없습니다.
  • 응답 형식: { success, data?, error? }