사용자 정의 REST API 빌드


10

사용자 입력을 받고 사용자 지정 데이터베이스를 검색하고 쿼리 결과를 표시하는 WordPress.org 사이트가 있습니다. wpdb 클래스를 사용 하여이 작업을 수행 했습니다 . 이제 Android 앱 에서이 작업을 수행하려고합니다.

내가 이해 한 바에 따르면 RESTful 서버를 구축하는 것이 이런 종류의 현재 '모범 사례'입니다. 이 작업을 수행하는 데 도움이되는 플러그인을 살펴 보았습니다.

  1. json-rest-api- 핵심 WordPress 기능 (예 : 게시물, 페이지, 사용자 등) 만 노출하고 기본이 아닌 테이블에서 사용자 정의 쿼리를 실행하는 방법을 알 수없는 것 같습니다.

  2. 이 블로그 게시물wp mvc 가 2 년 이상 업데이트되지 않은 것을 제외하고는 내가 원하는 것을 정확하게 수행 한다고 말합니다 .

  3. 이 또한 제트 팩 하지만 내가 본 것과, json으로 받침대-API는이 업데이트 된 버전이며, 단지뿐만 아니라 핵심 기능을 제공하는 것 같다.

이러한 플러그인 중 하나를 사용자 정의 엔드 포인트에 사용할 수있는 방법이 있습니까? 아니면 아직 찾지 못한 다른 플러그인이 있습니까?

플러그인을 사용하지 않으면 직접 롤링해야한다고 생각합니다. 처음부터 ( 또는 다른 것을 사용하여 wpdb) msqli또는 Restler 와 같은 API를 사용 하여이 작업을 수행 할 수 있습니다 .

내 테마로 템플릿을 만들어야하는 경우 직접 롤링하는 경우 여기에서 REST 작업을 수행하고 해당 테마를 대시 보드 내의 페이지에 할당합니까? 아니면 다른 서버를 WordPress와 별도로 실행하는 것이 더 낫습니까?

내가 볼 수있는 한, 이것들은 나의 유일한 옵션입니다. 이런 종류의 권장 모범 사례가 무엇인지 알고 싶습니다. 나는 아무도이 일을하지 않았다고 믿기가 어렵다. 내가 간과 한 옵션이 있습니까?


무슨 일이 있었나요? wp rest api에 대한 사용자 정의 경로 / 엔드 포인트를 만들려고하는데 1) 설명서가 끔찍합니다 .2) 웹에는 예제가 없습니다. 어떤 경로를 이용했는지 알려주세요!
Jacksonkr

1
Wordpress 외부에서 자체 API를 작성하기로 결정했지만 동일한 데이터베이스에 액세스 할 수 있습니다. 이것은 단지 부수적 인 프로젝트 였고 다른 것들로 너무 바빴 기 때문에 실제로 실제로 그것을 둘러 보지 못했습니다 .P. 내가 당신이라면 나는 symfony2 또는 laravel 프레임 워크를 살펴볼 것 입니다. 그들은 정말 빠르고 쉽게 무언가를 시작하고 실행합니다.
Yep_It's_Me

답변:


15

TL; DR

예, 워드 프레스는 확실히 모바일 앱의 백엔드 역할을 할 수 있습니다. 예, 페이지는 나머지 엔드 포인트 / 인터페이스로 작동 할 수 있습니다. 아니요, 테마 템플릿은 논리에 적합한 영역이 아닙니다. 나만의 플러그인을 작성하십시오.


포인터

나는 아무도이 일을하지 않았다고 믿기가 어렵다.

나는 하나 가지고있다. 두 번 이상 그리고 나는 혼자가 아니라고 확신합니다. "아무도 그것에 대해 광범위하게 블로그를 작성한 사람이 없습니다"는 아마도 더 올바른 개념 일 것입니다.

플러그인을 사용하지 않으면 직접 롤링해야한다고 생각합니다. wpdb, msqli 등을 사용하여 처음부터 또는 Restler 와 같은 API를 사용 하여이 작업을 수행 할 수 있습니다 .

나는 "Restler"를 모른다. 그리고 그것은 어쨌든이 스택의 범위를 벗어난다.
"wpdb, msqli 또는 다른 것 사용"에 관한 한 : wpdb데이터를 데이터베이스에 저장 (수신)하는 데 확실히 사용 하지만, 엔드 포인트 로직과 관련이 없습니다.

테마 템플릿은 살펴 봐야 할 것이 아닙니다. 테마는 시각적 인 프리젠 테이션을위한 것입니다. REST 엔드 포인트는 시각적으로 전혀 필요하지 않습니다.

당신이를 통해 사용하려는 페이지에 엔드 포인트에 삽입 단축 코드를 .

단축 코드 핸들러 / 콜백이 HTTP POST 또는 GET을 청취하고 이에 따라 데이터 저장 또는 기타 보조 메소드를 호출하십시오.


엔드 포인트 / 백엔드로 WordPress를 사용하는 것이 합리적입니까?

때에 따라 다르지.
데이터를 저장하기위한 엔드 포인트 만 있으면됩니다. 아니요. 코드를 몇 줄만 사용하여 전체 코어를로드하면 wpdb가치가 없습니다.
웹 브라우저를 통해 로그인 할 수있는 백엔드가 필요한 경우, 테이블 형식의 데이터를 표시하고, 여러 액세스 수준 / 사용자 역할 및 권한으로도 해당 데이터를 변경하는 방법을 제공 할 수 있습니다.


3
정말 좋은 답변 +1.
gmazzap

2
두배로 +1
Kaiser

정말 좋은 답변 주셔서 감사합니다! 그로부터 내가 가지고있는 두 가지 옵션은 다음과 같습니다. 1. 내 플러그인 작성; 2. 별도의 서비스를 작성하십시오. 엔드 포인트에 필요한 것은 몇 가지 GET 매개 변수를 가져와 JSON 본문을 리턴하는 것이므로 "코드를 사용하여 몇 줄의 코드를 저장하기 위해 전체 코어를로드하는 wpdb것은 가치가 없기 때문에"자체 서비스를 작성해야한다고 생각합니다 .
Yep_It's_Me

0

API 엔드 포인트 플러그인은 특히 MySQL에 익숙한 경우 모든 요구를 충족해야합니다. 다음 단계를 수행하십시오.

  1. 새 나뭇 가지 템플리트를 작성하고 MysQL 쿼리를 입력하여 WordPress 사이트에서 데이터를 가져오고 Twig 구문을 사용하여 데이터를 모든 형식으로 출력하십시오. 예를 들어 JSON입니다.

  2. 새 API 엔드 포인트를 작성하고 이름을 지정한 후 1 단계에서 작성한 나뭇 가지 템플리트를 사용하도록 구성하십시오.

완료되면 만들려는 모든 끝점에 대해 1 단계와 2 단계를 반복하십시오. API Endpoints는 표준 WordPress 인증 시스템을 사용하므로 WordPress에서 별도의 사용자를 만들고 해당 사용자 이름 / 암호를 사용하여 api 엔드 포인트에 액세스하는 것이 가장 좋습니다.


API Endpoints는 내 프로젝트에 흥미로워 보이지만 공개 가입을 허용하지 않는 블로그에 로그인해야하므로 거의 불가능한 Twig Anything이 필요합니다.
mettjus

지금은 ... 그것은 무료로하지 않습니다 실현
mettjus

0

WP REST API의 새 버전은 베타 버전이지만 사용자 정의 REST 엔드 포인트를 등록하는 방법에 대한 문서는 꽤 있습니다. 버전 1에서 어떻게 수행 될 수 있는지에 대한 아주 작은 문제도 있습니다. 베타 버전이 보장되지 않거나 안정적으로 유지되지 않기 때문에 시도해 볼 것입니다. 그런 다음 등록한 메소드 내에서 wpdb를 사용할 수 있다고 가정합니다. 실제로 ACF 항목을 사용하고 angularJS를 사용하여 검색 가능하고 정렬 가능한 멋진 다중 속성 색인 페이지를 만들기 위해 PHP의 객체로 사전 포지셔닝합니다.

문서에서 WWP REST API 1과 2의 비교

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.