WordPress에서 REST API를 설정하는 방법은 기본적으로 WordPress 설치 후 바로 사용 가능하지만, API 호출을 위한 인증이나 특정 기능을 추가하는 데에는 몇 가지 추가적인 설정이 필요합니다. 아래는 WordPress REST API 설정 및 API 호출 준비 과정을 단계별로 설명한 것입니다.
1. WordPress REST API 기본 설정
WordPress는 기본적으로 REST API가 활성화되어 있습니다. 설치 후 별도의 추가 설정 없이 API를 사용할 수 있으며, https://yourdomain.com/wp-json/ 주소로 REST API에 접근할 수 있습니다.
기본 확인 방법:
-
API URL 확인: 브라우저에서
https://yourdomain.com/wp-json/에 접속해보세요. JSON 형식으로 기본 API 엔드포인트에 대한 정보를 확인할 수 있습니다. -
예시:
https://yourdomain.com/wp-json/wp/v2/posts→ 글(Post)을 가져오는 엔드포인트
2. API 인증 방식 설정
REST API를 통해 포스팅을 자동화하려면 인증이 필요합니다. 주요 인증 방식은 다음과 같습니다:
1) Application Passwords(애플리케이션 비밀번호) – 가장 쉬운 인증 방법
워드프레스 5.6 이상에서는 애플리케이션 비밀번호 기능이 제공됩니다. 이는 사용자의 비밀번호 대신 API에 대한 인증을 제공하는 안전한 방법입니다.
설정 방법:
-
사용자 설정: 관리자로 로그인한 후 사용자 > 내 프로필로 가세요.
-
애플리케이션 비밀번호 생성: 페이지 하단으로 스크롤하면 “애플리케이션 비밀번호” 섹션이 있습니다.
-
새 비밀번호 생성: 원하는 이름을 입력하고 **”애플리케이션 비밀번호 추가”**를 클릭하세요.
-
생성된 비밀번호를 복사하고, 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 인증 플러그인 설치:
-
플러그인 설치:
JWT Authentication for WP REST API플러그인을 설치 후 활성화합니다. -
설정:
wp-config.php파일에 다음 코드를 추가하여 설정합니다: -
API 인증 요청: 로그인 후, JWT 토큰을 요청하고 API 호출 시 이를 헤더에 포함시켜 인증합니다.
-
예시:
Authorization: Bearer your_token
-
3. API 호출을 위한 PHP 예시 코드
1) 포스트 작성 예시: (REST API + Application Password 인증)
2) GET 요청 예시: (게시물 가져오기)
4. 기타 설정 (Optional)
– Custom Endpoint 추가하기
기본 REST API 엔드포인트 외에, 자신만의 API 엔드포인트를 추가하고 싶은 경우, functions.php 파일에 커스텀 엔드포인트를 추가할 수 있습니다.
이렇게 하면, https://yourdomain.com/wp-json/my_namespace/v1/custom-endpoint/와 같은 새로운 API 엔드포인트를 통해 데이터를 가져올 수 있습니다.
5. 테스트 및 디버깅
-
Postman을 사용해서 API 호출을 테스트하고 응답을 확인할 수 있습니다. API URL, 헤더, 바디 등 다양한 파라미터를 설정하고 응답 상태 코드나 내용을 확인하세요.
-
cURL 명령어를 통해 서버에서 직접 테스트할 수도 있습니다.
결론
WordPress에서 REST API를 통해 자동으로 포스팅하는 시스템을 구현하려면:
-
API 인증 방식을 설정 (Application Password, JWT, OAuth)
-
PHP 또는 Python 등으로 API 호출 코드 작성
-
커스텀 엔드포인트 추가(필요시)
-
Postman 또는 cURL로 테스트 후 실제 구현
이 과정을 통해 자동화 시스템을 구축할 수 있습니다!
추가적으로 샘플 코드나 응답 예시가 필요하면 알려주세요!