2013-07-14 7 views
1

PHP 및 JavaScript의 REST 관련 가이드를 읽었습니다. 작은 구현 문제가 있습니다.REST API 구현 문제 php/JS

받은 URI에 따라 동작하도록 서버 측을 삭제하려고한다고 가정합니다. 예를 들어 :

http DELETE URI에 수신하는 경우 : /users/563 IT는 ID와 사용자를 삭제합니다 (546) 내 문제는 클라이언트 측의 삭제 요청 (JavaScript)를 시작 :

function ajaxRequest() 
{ 

    var http_request = new XMLHttpRequest(); 
    http_request.onreadystatechange = function() 
    { 
     var done = 4, ok = 200; 
     if (http_request.readyState == done && http_request.status == ok) 
     { 
      responseHandler(http_request.responseText); 
     } 
    }; 


    http_request.open("DELETE", php/dbHandler.php , true); 
    http_request.send(data); 
} 

삭제 요청 이 경우 서버 측 URL을 지정해야합니다. dbHandler.php 서버 쪽 대상 주소를 잃지 않고 URI /users/563을 어디에 삽입해야합니까?

서버 측에서는 $_SERVER['REQUEST_URI'] 명령으로 URI를 추출하려고하면 항상 클라이언트 측에서 URI를 작성/전송하고 서버 측에서 추출하는 적절한 방법은 무엇입니까 php/dbHandler.php?

+0

를받을 매핑 서버 측 자원을 가지고 있는지 확인해야합니다 나는 무슨 일이 일어나고 있는지 잘 모르겠습니다. 반드시 ** php/dbHandler.php **가 아닌 ** users/563 **에게 요청을 보내야합니다. –

+0

URI가'/ users/563'이어야하고 dbHandler.php가 처리하도록 서버에서 URL 재 작성을 설정하십시오. 또한 http://stackoverflow.com/questions/2539394/rest-http-delete-and-parameters를 참조하십시오. – bfavaretto

답변

0

서버 측에서 필요에 따라 요청을 변환하는 방법을 알고있는 일부 처리기로 작업해야합니다. http://www.domain.com/php/users/563 그래서 당신의 htaccess로 그렇게 보일 것입니다 : -

당신이 아파치를 사용하는 경우 당신이 URL에 매개 변수를 사용하여 URL을 http://www.domain.com/php/dbHandler.php을 번역하려는 경우에 따라서 .htaccess file

를 통해 모든 요청을 처리

Options +FollowSymLinks 
RewriteEngine On 
RewriteBase/

RewriteRule ^php/users/([0-9]+)/?$ php/dbHandler.php?uid=$1 [L] 

아파치 그가 형태의 PHP/사용자의 URL을 가져옵니다 경우/123 그가 PHP에서 실제 URL로 리디렉션됩니다 것을 알고이 방법/PARAM의 GET ID 값과 dbHandler.php 123

이것은 기본입니다 - 모르는 경우 스택이 많아서 많은 자료를 읽어야합니다.

물론 모든 서버에는 uris를 리디렉션하기위한 고유 한 방법이 있으며 Microsoft IIS에서는 약간 다릅니다.

내 요구는 다음과 같이 할 것이다
0

:

function ajaxRequest(id){ 
// your stuff here... 
http_request.open("DELETE", "users/" + id, true); 
// your other stuff ... 
} 

하지만 당신은 당신이 URI/사용자/{ID}에서 데이터