WordPress
REST API
수색…
소개
WordPress REST API는 개발자가 JSON (JavaScript Object Notation) 객체를 보내고 받음으로써 원격으로 사이트와 상호 작용할 수있는 WordPress 데이터 유형에 대한 API 끝점을 제공합니다.
API에 콘텐츠를 보내거나 API에 요청하면 응답이 JSON으로 반환됩니다. 이를 통해 개발자는 클라이언트 측 JavaScript 또는 PHP 이외의 언어로 작성된 외부 응용 프로그램에서 WordPress 컨텐츠를 작성, 읽기 및 업데이트 할 수 있습니다.
비고
이 WordPress REST API 간단한 예제가 효과를 발휘하려면 어떻게 작동하는지 자세히 알아야합니다. 공식 문서는 다음에 대해 학습 할 것을 권장합니다.
Routes / Endpoints - 개별 HTTP 메소드와 "엔드 포인트"로 알려진 라우트의 맵핑입니다. register_rest_route () 함수를 사용하여 수행합니다. 여기에서 라우트 및 엔드 포인트 에 대한 자세한 정보를 찾을 수 있습니다.
요청 - WordPress REST API는 현재 요청에 대한 정보를 저장하고 검색하는 데 사용되는
WP_REST_Request
클래스를 정의합니다.WP_REST_Request
객체는 등록 된 경로에 대한 HTTP 요청을 할 때마다 자동으로 생성됩니다. 요청에 지정된 데이터가 API에서 어떤 응답을 반환하는지 결정합니다. 여기 WP_REST_Request 클래스 에 대해 자세히 배울 수 있습니다.응답 - API에서 가져온 데이터입니다.
WP_REST_Response
는 엔드 포인트가 리턴 한 응답 데이터와 상호 작용할 수있는 방법을 제공합니다. 엔드 포인트 정의에서 상호 작용을 제공하는 콜백 (응답) 함수의 이름을 지정하십시오. 여기 WP_REST_Response 클래스 에 대해 자세히 배울 수 있습니다.스키마 - 각 종단점은 약간 다른 데이터 구조를 요구하고 제공하며 이러한 구조는 API 스키마에 정의됩니다. 관리 가능하고 발견 가능하며 쉽게 확장 할 수있는 엔드 포인트가 필요하면 스키마를 사용하는 것이 좋습니다. 여기에서 스키마 에 대해 자세히 배울 수 있습니다.
컨트롤러 클래스 - 모든 요소를 단일 위치에 모아 놓습니다. 컨트롤러 클래스를 사용하면 경로 및 끝점 등록을 관리하고 요청을 처리하며 스키마를 활용하고 API 응답을 생성 할 수 있습니다.
WP_REST_Request
와WP_REST_Response
WP_REST_Request
두 개의 컨트롤러 클래스에 대해 이미 배웠다. 여기에서 컨트롤러 클래스에 대해 자세히 배울 수 있습니다.
참고 :이 정보 중 일부는 공식 Wordpress REST APi 핸드북 에서 가져온 것입니다.
완전한 작업 예제
add_action('rest_api_init', 'my_rest_validate_endpoint' );
function my_rest_validate_endpoint() {
// Declare our namespace
$namespace = 'myrest/v1';
// Register the route
// Example URL matching this route:
// http://yourdomain/wp-json/myrest/v1/guides/tag=europe/price=29
register_rest_route($namespace,
// Using regular expressions we can initially validate the input
'/guides/tag=(?P<tag>[a-zA-Z0-9-]+)/price=(?P<price>[0-9]+)',
// We can have multiple endpoints for one route
array(
array(
'methods' => 'GET',
'callback' => 'my_get_guides_handler'
)
),
// We can register our schema callback
// 'schema' => 'my_get_guide_schema',
);
// You can register another route here the same way
}
// The callback handler for the endpoint
function my_get_guides_handler(WP_REST_Request $request) {
// Get the parameters:
$tag = $request->get_param('tag');
$price = $request->get_param('price');
// Do something with the parameters
// for instance: get matching guides from the DB into an array - $results
// ...
// Prepare the response
$message = "We've found " . count($results) . " guides ";
$message .= "(searching for a tag: " . $tag . ", with a price tag: " . $price . ")";
// The response gets automatically converted into a JSON format
return new WP_REST_Response(
array(
'results' => $results,
'message' => $message,
'status' => 'OK'
),
200 );
}