REST 유형 API는 애플리케이션과 Twitter, MailChimp 또는 GitHub와 같은 웹 서비스 간의 통신 수단이기 때문에 개발자에게 점점 인기를 얻고 있습니다. 의 도착WordPress REST API 이용 가능 플러그인 (그러나 XNUMX 월 커널로 예정), WordPress에 이미 존재하는 HTTP API를 연구 할 수있는 적절한 기회를 제공합니다. 이 자습서에서는 WordPress HTTP API가 무엇인지 살펴보고 사용 방법을 보여줍니다.

HTTP API

WordPress HTTP API는 웹 서비스 또는 다른 사이트의 응용 프로그램에서 WordPress로 또는 그 반대로 HTTP 프로토콜을 통해 메시지를 전송하는 방법입니다. 이 페이지로 이동하려면 브라우저가 BlogPasCher의 서버에 HTTP 요청을해야합니다. 그들은 당신이 지금보고있는 것을 포함하는 응답을 반환함으로써 응답했습니다. 이제 WordPress REST API를 사용하면 이러한 종류의 요청 / 응답 시스템에 참여할 수 있으므로 그래픽 인터페이스와 플랫폼의 핵심 간의 분리가 가능합니다. 그러나이를 활용하려면 HTTP 요청을 보내기위한 일련의 메서드와 유틸리티를 제공하는 WordPress HTTP API를 사용하는 방법을 배워야합니다.

HTTP 메소드 및 자원

HTTP 프로토콜은 메소드와 능숙. 능숙 조치를 취하려는 대상을 정의하고 메소드는 수행할 조치 유형을 정의합니다. 보다 실질적으로, 능숙 인터넷상의 객체에 대한 URL입니다(예: 이 기사). 방법 측면에서 가장 중요한 것은 다음과 같습니다.

- 바로 : 검색하다 자원
- POST : 생성하다 자원
- PUT : 수정하다 자원
- 삭제 : 자원을 삭제하려면

HTTP API를 사용한 예제 요청

시작하려면 HTTP API를 사용하여 간단한 요청을 보내는 방법을 살펴 보겠습니다. 우리는 기능을 사용할 것입니다 wp_remote_get Google 서버를 쿼리하고 홈페이지를 검색합니다. 이 함수는 두 개의 매개 변수를 취합니다. 첫 번째는 자원이고 두 번째는 세부 사항을 지정하는 옵션 목록입니다. 더 이상 고민하지 않고 조치를 취합시다.

$ 테스트 = wp_remote_get ( 'http://google.com'); 에코 " "; 
var_dump ($ 테스트); 
에코 " ";

돌아온 wp_remote_get 변수에 포함되어있다. $ 테스트, Google이 요청 후 반환 한 홈페이지의 콘텐츠를 나타냅니다. 선 위해서 var_dump ($ 테스트); 응답에서 반환 된 항목을 볼 수 있습니다.

헤더 메시지에 대한 추가 정보가 들어 있습니다. 일부 REST API는 특정 정보를 쿼리로 보내야합니다.

섹션 응답 응답에 대한 상태 코드 및 설명이 포함됩니다. 페이지를 찾을 수 없음에 대한 404 오류, 501 서버 오류 또는 301 및 302 리디렉션에 대해 들어 보셨을 것입니다. 이러한 번호는 오류 코드입니다. W3.org 사이트에는 모든 HTTP 오류 코드 및 설명.

섹션 실제 답변이 포함되어 있으며 상황이 잘 진행될 때 살펴 봐야 할 부분입니다. 이 예에서는 Google 홈페이지의 HTML을 수신하고 있습니다. REST API가 JSON 형식으로 응답을 반환하는 것은 매우 일반적입니다. 우리가 보게 될 일부 API는 요청의 본문 섹션에 문자열을 포함해야합니다.

섹션 쿠키 메시지와 함께받은 모든 쿠키가 포함됩니다.

보시다시피 WordPress HTTP API를 사용하여 요청을 보내는 것은 어렵지 않습니다. 반면에 REST API에서 어려울 수있는 것은 전송 된 정보의 세부 사항에 대해 까다 롭다는 것입니다. 이는 일관성에 좋은 것입니다. 따라서 사용중인 API에 대한 문서를주의 깊게 읽으십시오.

검색 API

대부분의 사용자는 REST API와 상호 작용하기 위해 HTTP API를 사용할 것입니다. 따라서 함수의 두 번째 매개 변수를 사용해야합니다. wp_remote_get 특정 수를 명확히하고, 인증하고, 결과를 구체화하기 위해 ... Pinterest 벽에서 핀을 얻는 것과 같은 간단한 예부터 시작하겠습니다. 모든 자존심있는 API에는 인증이 필요하지만 여기서는이를 우회합니다. 액세스 토큰 생성 (액세스 토큰). 코드 !

$ 요청 = wp_remote_get ( 'https://api.pinterest.com/v1/boards/ / 홈 오피스 / 핀 /? access_token = '); $ pins = json_decode ($ request [ 'body'], true); if (! empty ($ pins [ 'data'])) {echo ' '; foreach ($ 핀 [ 'data']를 $ 핀으로) {echo ' '. $ 핀 [ 'note']. ' '; } echo ' '; }

첫 번째 줄에서 교체하십시오사용자 이름 게시판> Pinterest 벽의 ID로  직접 생성 한 액세스 토큰으로. 응답은 JSON 형식이므로 두 번째 줄에서 디코딩합니다. 핀은 $ 핀 [ '데이터']그래서 우리는 그것을 통해 핀을 목록에 넣습니다. 이 코드를 테마의 템플릿 파일에 붙여넣고 결과를 볼 수 있습니다.

입증

이 부분에서는 Twitter REST API 인증을 예로 들어 보겠습니다.

API로 시작할 때 문서를주의 깊게 읽고 깊이 이해하는 것이 매우 중요합니다. 인증은 개발자가 종종 충돌하는 것 중 하나입니다. 원인 중 하나는 문서를 잘못 읽는 것입니다. REST API 작업에 익숙한 경우 섹션으로 바로 건너 뛸 수 있습니다. 인증. 트위터의 경우, 쿼리의 본문 섹션에 문자열을 포함시켜야한다는 문서 라인을 놓치기 쉽습니다. grant_type = client_credentials. 포함하지 않으면 코드의 다른 모든 것이 괜찮더라도 완전히 실패 할 수 있습니다. 항상 문서를 읽고 이해했는지 확인하십시오. Twitter의 경우이 작업을 수행 한 후 다음과 같은 POST 요청을 구성하여 액세스 토큰을 생성 할 수 있습니다.

$ key = base64_encode (urlencode ( "PKI865f6uvGZA6xvFTtb8IAA : i4pmOV0duXJEgty95Ghth89dh5wDIqfJOovKjs92ei878")); $ request = wp_remote_post ( 'https://api.twitter.com/oauth2/token', array ( 'headers'=> array ( 'Authorization'=> 'Basic'. $ key, 'Content-Type'=> ' application / x-www-form-urlencoded; charset = UTF-8 '),'body '=>'grant_type = client_credentials ','httpversion '=>'1.1 ')); $ token = json_decode ($ request [ 'body']); 에코 " "; var_dump ($ 토큰); echo" ";

첫 번째는 액세스 토큰과 비밀 문자열을 인코딩하는 것입니다 (표시되는 항목은 유효하지 않음). 그런 다음 요청 자체를 공식화하십시오. 여기에서 Twitter의 권장 사항에 따라 두 개의 헤더가 추가되었음을 알 수 있습니다. 권한 부여 et 콘텐츠 형식, 우리는 체인을 포함 시켰습니다. grant_type = client_credentials et httpversion. 이 모든 것이 없으면 향후 Twitter API에 요청하는 데 필요한 액세스 토큰을 생성 할 수 없습니다. 결과:

WP-HTTP-API-트위터 토큰

이제 액세스 토큰이 있으므로 꽤 오랫동안 유효하므로 캐시하는 것이 좋습니다. 모든 요청에 ​​대해 Twitter의 REST API에서 가져 오는 것은 비즈니스에 아무런 도움이되지 않습니다. 코딩. 과도 현상의 개념은이 시나리오와 잘 일치하므로 구현해 보겠습니다.

$ 토큰 = get_transient ( 'twitter_access_token'); $ 토큰 = (비어 있음 ($ 토큰))? get_twitter_access_token () : $ 토큰; $ 요청 = wp_remote_get ( 'https://api.twitter.com/1.1/followers/ids.json?screen_name= & count = 5 ', array ('headers '=> array ('Authorization '=>'Bearer '. $ token,'Content-Type '=>'application / x-www-form-urlencoded; charset = UTF-8 ' ), 'httpversion'=> '1.1')); $ token = json_decode ($ request [ 'body']);

이 요청은 교체하는 경우 팔로어로부터 5를 받아야합니다. 트위터 사용자 이름으로. 이 코드에서는 일시적인 액세스 토큰을 얻습니다. 후자가 없으면 함수를 사용합니다. get_twitter_access_token (이전 예제에서 디자인 할 수 있습니다). 이 함수는 일시적으로 액세스 토큰을 추가해야합니다.

WordPress HTTP API 유틸리티 함수

쿼리를 실행할 수있는 4 가지 기능이 있습니다. 사람들은 wp_remote_get, wp_remote_post, wp_remote_head, wp_remote_request. 마지막 것은 일반화되어 있습니다. 즉, 모든 HTTP 메소드와 함께 사용할 수 있습니다.

답변의 일부를 검색하는 5 개의 함수도 있습니다. 사람들은 wp_retrieve_body, wp_retrieve_header, wp_retrieve_headers, wp_retrieve_response_code, wp_retrieve_response_message.

다른 개발자가 코드를 쉽게 이해할 수 있도록 HTTP API 기능을 최대한 많이 사용하십시오.

WordPress의 개발은 API 기반 접근 방식으로 결정적으로 이동하고 있습니다. 욕조에 머물기 위해 지금이 WordPress의 다양한 API를 사용하는 방법을 배울 때입니다.

이미 WordPress API를 사용하고 계십니까? 왜 그리고 어떻게 합니까? 당신은 어떤 트릭 더 간단하게 만들려면? 의견 섹션에서 우리와 공유하십시오.