
개요
WordPress REST API는 WordPress 사이트의 데이터를 JSON 형식으로 주고받을 수 있도록 해주는 강력한 인터페이스입니다. 이를 활용하면 외부 애플리케이션에서 WordPress 콘텐츠를 조회, 생성, 수정, 삭제할 수 있습니다.
본 글에서는 WordPress REST API의 개념, 기본 사용법, 인증 방식, 실제 활용 예제까지 단계별로 설명합니다.
1. WordPress REST API란?
WordPress REST API는 HTTP 요청을 통해 WordPress 데이터를 JSON 형식으로 주고받을 수 있는 인터페이스입니다. 이를 통해 모바일 앱, 프론트엔드 애플리케이션, 외부 웹사이트에서도 WordPress 콘텐츠를 관리할 수 있습니다.
1.1. WordPress REST API의 주요 특징
- RESTful 아키텍처 – HTTP 요청(GET, POST, PUT, DELETE) 기반의 API 제공
- JSON 형식 지원 – 데이터를 구조화된 JSON 형태로 주고받음
- 확장 가능 – 플러그인을 통해 API 엔드포인트 추가 및 수정 가능
- 비로그인 사용자도 조회 가능 – 기본적으로 공개된 콘텐츠는 인증 없이 접근 가능
- OAuth, JWT, Cookie 인증 지원 – 보안이 필요한 요청을 위한 다양한 인증 방식 제공
2. WordPress REST API 기본 사용법
WordPress REST API는 /wp-json/wp/v2/
엔드포인트를 통해 데이터를 제공합니다.
2.1. REST API 활성화 확인
WordPress REST API는 기본적으로 활성화되어 있으며, 다음 URL을 통해 사용 가능 여부를 확인할 수 있습니다.
https://yourdomain.com/wp-json/wp/v2/
정상적으로 작동하면 JSON 형식의 응답이 반환됩니다.
3. 기본 엔드포인트 사용 예제
WordPress REST API에서는 게시글, 페이지, 사용자, 카테고리 등의 데이터를 조회하고 관리할 수 있습니다.
3.1. 게시글 목록 조회 (GET 요청)
curl -X GET "https://yourdomain.com/wp-json/wp/v2/posts"
응답 예제 (JSON)
[
{
"id": 1,
"title": { "rendered": "Hello World" },
"content": { "rendered": "<p>WordPress 첫 번째 글입니다.</p>" }
}
]
3.2. 특정 게시글 조회 (GET 요청)
curl -X GET "https://yourdomain.com/wp-json/wp/v2/posts/1"
이 요청은 ID가 1번인 특정 게시글의 정보를 반환합니다.
3.3. 게시글 생성 (POST 요청, 인증 필요)
curl -X POST "https://yourdomain.com/wp-json/wp/v2/posts" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-d '{
"title": "새로운 글",
"content": "이것은 REST API를 사용하여 생성된 글입니다.",
"status": "publish"
}'
응답 예제
{
"id": 2,
"title": { "rendered": "새로운 글" },
"content": { "rendered": "<p>이것은 REST API를 사용하여 생성된 글입니다.</p>" },
"status": "publish"
}
3.4. 게시글 수정 (PUT 요청, 인증 필요)
curl -X PUT "https://yourdomain.com/wp-json/wp/v2/posts/2" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-d '{
"title": "수정된 글 제목"
}'
3.5. 게시글 삭제 (DELETE 요청, 인증 필요)
curl -X DELETE "https://yourdomain.com/wp-json/wp/v2/posts/2?force=true" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
응답 예제
{
"deleted": true,
"previous": {
"id": 2,
"title": { "rendered": "수정된 글 제목" }
}
}
4. WordPress REST API 인증 방식
보안이 필요한 요청(예: 게시글 작성, 수정, 삭제)은 인증이 필요합니다.
4.1. 기본 인증 (Basic Authentication, 테스트용)
.htaccess
파일을 수정하여 기본 인증을 활성화할 수 있습니다.
하지만 보안상 안전하지 않으므로 프로덕션 환경에서는 사용하지 않는 것이 좋습니다.
4.2. OAuth 2.0 인증
OAuth 플러그인을 설치하면 WordPress API에서 OAuth 인증을 사용할 수 있습니다.
- WP OAuth Server 플러그인 사용 가능
4.3. JWT (JSON Web Token) 인증
JWT 인증을 사용하면 Bearer Token을 통해 API 요청을 보낼 수 있습니다.
JWT 인증 플러그인 설치
wp plugin install jwt-authentication-for-wp-rest-api --activate
사용자 인증 후 토큰 발급
curl -X POST "https://yourdomain.com/wp-json/jwt-auth/v1/token" \
-H "Content-Type: application/json" \
-d '{"username": "admin", "password": "your_password"}'
- 응답 예제
{
"token": "YOUR_ACCESS_TOKEN",
"user_email": "admin@example.com"
}
토큰을 사용하여 API 요청 보내기
curl -X GET "https://yourdomain.com/wp-json/wp/v2/posts" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
5. WordPress REST API 확장 (커스텀 엔드포인트 추가)
사용자가 플러그인을 통해 새로운 REST API 엔드포인트를 추가할 수도 있습니다.
5.1. functions.php 파일에 커스텀 엔드포인트 추가
function custom_api_endpoint() {
return new WP_REST_Response(array(
'message' => '안녕하세요, 이것은 커스텀 API 응답입니다.'
), 200);
}
add_action('rest_api_init', function () {
register_rest_route('custom/v1', '/message', array(
'methods' => 'GET',
'callback' => 'custom_api_endpoint'
));
});
사용 예제
curl -X GET "https://yourdomain.com/wp-json/custom/v1/message"
응답 예제
{
"message": "안녕하세요, 이것은 커스텀 API 응답입니다."
}
6. 결론
WordPress REST API를 활용하면 외부 애플리케이션에서도 WordPress 콘텐츠를 관리할 수 있습니다. 또한, 인증 방식을 활용하면 안전하게 게시글을 생성, 수정, 삭제할 수 있습니다.