WordPress REST API 를 설정하는 방법 알려줘









WordPress에서 REST API를 설정하는 방법은 기본적으로 WordPress 설치 후 바로 사용 가능하지만, API 호출을 위한 인증이나 특정 기능을 추가하는 데에는 몇 가지 추가적인 설정이 필요합니다. 아래는 WordPress REST API 설정API 호출 준비 과정을 단계별로 설명한 것입니다.

1. WordPress REST API 기본 설정

WordPress는 기본적으로 REST API가 활성화되어 있습니다. 설치 후 별도의 추가 설정 없이 API를 사용할 수 있으며, https://yourdomain.com/wp-json/ 주소로 REST API에 접근할 수 있습니다.

기본 확인 방법:

  1. API URL 확인: 브라우저에서 https://yourdomain.com/wp-json/에 접속해보세요. JSON 형식으로 기본 API 엔드포인트에 대한 정보를 확인할 수 있습니다.

  2. 예시: https://yourdomain.com/wp-json/wp/v2/posts → 글(Post)을 가져오는 엔드포인트


2. API 인증 방식 설정

REST API를 통해 포스팅을 자동화하려면 인증이 필요합니다. 주요 인증 방식은 다음과 같습니다:

1) Application Passwords(애플리케이션 비밀번호) – 가장 쉬운 인증 방법

워드프레스 5.6 이상에서는 애플리케이션 비밀번호 기능이 제공됩니다. 이는 사용자의 비밀번호 대신 API에 대한 인증을 제공하는 안전한 방법입니다.

설정 방법:
  1. 사용자 설정: 관리자로 로그인한 후 사용자 > 내 프로필로 가세요.

  2. 애플리케이션 비밀번호 생성: 페이지 하단으로 스크롤하면 “애플리케이션 비밀번호” 섹션이 있습니다.

  3. 새 비밀번호 생성: 원하는 이름을 입력하고 **”애플리케이션 비밀번호 추가”**를 클릭하세요.

  4. 생성된 비밀번호를 복사하고, API 호출 시 HTTP 요청 헤더에 추가합니다.

    • 예시: Authorization: Basic base64_encode(username:password) 형태로 전달

2) OAuth 인증 – 보다 복잡하지만 안전한 인증

  • OAuth 인증은 외부 애플리케이션이 사용자의 동의를 받아 API를 사용할 수 있도록 합니다.

  • OAuth 플러그인을 설치하여 설정해야 하며, JWT Authentication for WP REST API 플러그인을 사용하여 OAuth 인증을 설정할 수도 있습니다.

3) JWT (JSON Web Token) 인증

  • JWT를 사용하면 API 호출 시 액세스 토큰을 헤더로 보내 인증을 처리할 수 있습니다.

  • 이를 위해 JWT Authentication for WP REST API 플러그인을 설치해야 합니다.

JWT 인증 플러그인 설치:
  1. 플러그인 설치: JWT Authentication for WP REST API 플러그인을 설치 후 활성화합니다.

  2. 설정: wp-config.php 파일에 다음 코드를 추가하여 설정합니다:

    php
    define('JWT_AUTH_SECRET_KEY', 'your_secret_key'); define('JWT_AUTH_CORS_ENABLE', true);
  3. API 인증 요청: 로그인 후, JWT 토큰을 요청하고 API 호출 시 이를 헤더에 포함시켜 인증합니다.

    • 예시: Authorization: Bearer your_token


3. API 호출을 위한 PHP 예시 코드

1) 포스트 작성 예시: (REST API + Application Password 인증)

php
// POST 요청을 보내는 예시 $url = 'https://yourdomain.com/wp-json/wp/v2/posts'; // 인증을 위한 Application Password $username = 'your_username'; $password = 'your_application_password'; // 위에서 생성한 비밀번호 // API 헤더 설정 $headers = [ 'Authorization' => 'Basic ' . base64_encode($username . ':' . $password), 'Content-Type' => 'application/json', ]; // POST 데이터 (새로운 포스트 내용) $data = [ 'title' => '자동화된 글 제목', 'content' => '이 글은 API를 통해 자동으로 작성되었습니다.', 'status' => 'publish', // 공개 상태 ]; // cURL 초기화 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); // 응답 받기 $response = curl_exec($ch); curl_close($ch); // 응답 출력 echo $response;

2) GET 요청 예시: (게시물 가져오기)

php
// GET 요청을 보내는 예시 (특정 게시물 가져오기) $url = 'https://yourdomain.com/wp-json/wp/v2/posts/1'; // 1번 게시물 정보 // 인증을 위한 Application Password $username = 'your_username'; $password = 'your_application_password'; // 위에서 생성한 비밀번호 // API 헤더 설정 $headers = [ 'Authorization' => 'Basic ' . base64_encode($username . ':' . $password), ]; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $response = curl_exec($ch); curl_close($ch); // 응답 출력 echo $response;

4. 기타 설정 (Optional)

Custom Endpoint 추가하기

기본 REST API 엔드포인트 외에, 자신만의 API 엔드포인트를 추가하고 싶은 경우, functions.php 파일에 커스텀 엔드포인트를 추가할 수 있습니다.

php
function custom_api_endpoint() { register_rest_route('my_namespace/v1', '/custom-endpoint/', [ 'methods' => 'GET', 'callback' => 'custom_endpoint_callback', ]); } function custom_endpoint_callback() { return new WP_REST_Response('커스텀 API 응답', 200); } add_action('rest_api_init', 'custom_api_endpoint');

이렇게 하면, https://yourdomain.com/wp-json/my_namespace/v1/custom-endpoint/와 같은 새로운 API 엔드포인트를 통해 데이터를 가져올 수 있습니다.


5. 테스트 및 디버깅

  • Postman을 사용해서 API 호출을 테스트하고 응답을 확인할 수 있습니다. API URL, 헤더, 바디 등 다양한 파라미터를 설정하고 응답 상태 코드내용을 확인하세요.

  • cURL 명령어를 통해 서버에서 직접 테스트할 수도 있습니다.


결론

WordPress에서 REST API를 통해 자동으로 포스팅하는 시스템을 구현하려면:

  1. API 인증 방식을 설정 (Application Password, JWT, OAuth)

  2. PHP 또는 Python 등으로 API 호출 코드 작성

  3. 커스텀 엔드포인트 추가(필요시)

  4. Postman 또는 cURL로 테스트 후 실제 구현

이 과정을 통해 자동화 시스템을 구축할 수 있습니다!

추가적으로 샘플 코드응답 예시가 필요하면 알려주세요!

댓글 남기기