2012-10-18 2 views
2

지난 몇 주 동안 PHP (Laravel 프레임 워크)에서 RESTful API를 작성했습니다. 또한이 API를 사용하는 JavaScript 프론트 엔드 (jQuery/Backbone)를 구축 중입니다.GET 요청에서 쿼리 매개 변수로 ID 배열 RESTful API

이 API에는 상당량의 쿼리 매개 변수가 필요한 일부 GET 요청이 있으며 대부분은 ID 배열입니다. I는 다음과 같이하여 구성 가지고

/api/cars?colors[]=1&colors[]=3&makes[]=6&makes[]=2&sold=false 

(= 1 적색 ID와 함께 예를 들면 색상, ID로 할 = 6 오디 등이다)

PHP에서

$ _GET [에서 배열 파싱 '색상'] 상자 밖으로 작동합니다. 또한 사용할 때

$.ajax({ 
    url: "someurl", 
    method: "GET", 
    data: { 
    cars: theCarsArray, 
    makes: theMakesArray, 
    sold: false 
    } 
}); 

(배열은 위에서 설명한대로 URL에서 전송됩니다) 완벽하게 작동합니다. 내가 궁금해 :이게 REST 인터페이스에서 ID의 배열을 보내는 접근 방식인가요? 이 접근법에 단점이 있습니까? 대안은 무엇입니까?

답변

1

내 경험에 의하면, 그것은 배열 값을 PHP 스크립트에 전달하는 허용 된 방법입니다. 그리고 PHP를 사용하고 있기 때문에 이미 존재하는 것을 활용해야합니다. 즉, 웹 페이지가 다른 프로그래밍 언어/프레임 워크로 구현 될 때 일반적으로 배열 값이 전달되지 않습니다. 경우에 따라서는이를 볼 것이다 : 그 언어/프레임 워크에서

/api/cars?colors=1&colors=3&makes=6&makes=2&sold=false 

을, 그들은 종종 스칼라 나 배열로 요청 매개 변수에 액세스하는 방법을 제공합니다. 따라서 구현을 공개하고 있습니다. PHP를 사용한다는 사실을 숨기고 싶다면 위와 같이 변경할 수 있지만 요청 매개 변수를 구문 분석하기 위해 추가 기능을 추가해야합니다. 내가 말했듯이, PHP에서 이것을 구현하고 있기 때문에 상자에서 제공하는 것을 이용하면 아무런 문제가 보이지 않습니다.

내 유일한 제안은 자동차 컬렉션을 반환하는 (아마도) 것이므로보다 유용한 방법 인 것 같아서 URL 끝점을 /api/cars/으로 변경하는 것이 좋습니다.

어쨌든, 내 두 센트. 희망이 도움이됩니다.

+0

이 구문은 PHP와 관련이 있습니까? Rails가이 방법을 사용하는 것처럼 보입니까? http://rails.nuvvo.com/lesson/6371-action-controller-parameters – ec30

관련 문제