source

메서드 POST에 대한 Wordpress REST API 사용자 지정 끝점

ittop 2023. 3. 28. 22:38
반응형

메서드 POST에 대한 Wordpress REST API 사용자 지정 끝점

저는 현재 WordPress 웹사이트와 간단한 REST API를 필요로 하는 프로젝트를 진행하고 있습니다.WordPress에 자체 REST api가 있다는 것을 발견하고 제 요구에 맞게 기능을 확장하기로 했습니다.WordPress와 직접 관련되지 않은 테이블(단, 같은 데이터베이스)에서 데이터를 가져오거나 삽입하는 GET 및 POST 요청용 엔드포인트를 확보하기만 하면 됩니다.GET 요청은 모두 성공적으로 구현했지만 POST가 제대로 작동되지 않도록 노력하고 있습니다.
다음 루트 레지스터가 정의되어 있습니다.

register_rest_route('api/v1', 'create-player/', array(
        'methods' => 'POST',
        'callback' => 'create_player',
));

클라이언트는 위의 루트에서 엔드포인트에 히트할 것으로 예상되는 Ajax 콜을 통해 요구를 전송합니다.이게 아약스입니다.

    $.ajax({
       method: "POST",
       url: '/wp-json/api/v1/create-player/',
       data : JSON.stringify(data),
       contentType: 'applcation/json',
       beforeSend: function (xhr){
           xhr.setRequestHeader("X-WP-None", locData.nonce);
           console.log('beforeSend');
       },
       success: function(response){
           console.log("success" + response);
       },
       fail: function (response){
           console.log("fail" + response);
       }
    });

REST api에서 POST 루트 레지스터를 구축하는 방법을 알 수 없습니다.다른 GET 요구에는 속성이 있습니다.args엔드포인트에서 전달된 파라미터에 직접 매핑합니다.POST를 사용할 때 요청 데이터를 처리하기 위해 그런 것이 필요합니까?Ajax에서 전달된 데이터 유형을 가져온 다음 내 함수에 사용하려면 어떻게 해야 합니까?create_player();WP REST API 문서는 불완전한 것 같고, 제가 찾은 모든 정보는 WordPress 내장 기능에 엔드포인트를 사용하지만, 필요 없습니다. 제공된 기능을 사용하여 나만의 인터페이스를 만들고 싶습니다.감사해요.

콜백 함수에서는 다음과 같은 것을 사용할 수 있습니다.

 $param = $request->get_param( 'some_param' );

  // You can get the combined, merged set of parameters:
 $parameters = $request->get_params();

https://www.coditty.com/code/wordpress-api-custom-route-access-post-parameters

드디어 찾았다!POST 요청의 본문에 액세스하려면$request->get_body();당신의 안에서register_rest_route콜백 방식

루트를 등록할 때 메서드에 POST를 추가하고 콜백 함수로 POST 변수에 액세스합니다.$request배열, 그게 다예요.

언급URL : https://stackoverflow.com/questions/44189832/wordpress-rest-api-custom-endpoint-for-method-post

반응형