2012-06-26 2 views
2

node.js를 REST API로 사용합니다. 가능한 다음 작업이 있습니다REST API : 다른 속성을 검색하는 방법

  1. /연락처 모든 연락처, GET, 발견
  2. /연락처, POST, 새 연락처를지지합니다
  3. /연락처/: ID, 쇼를 GET 또는 그것의에 의해 접촉에서 지정할 얻는다 ID
  4. 가/
  5. /연락처를 : ID가, PUT는, 특정 연락처를
  6. /연락처/업데이트 : 아이디, 삭제를 특정 연락처를

뭐를 제거 이제는 사용자를 찾다가 검색하는 논리 경로가 될 것입니까? 이 경로를 3. 경로에 추가해야합니까, 아니면 추가 경로를 만들어야합니까?

답변

2

나는이 질문에 대해 많은 의견을 가질 것이라고 확신합니다. 개인적으로 나는 포기 "모든 연락처"를 필터링으로 "검색"을 참조 것 :

GET/연락처를 필터링 = your_filter_statement

당신은 아마 이미 잘 작동 매김을 허용하는 GET/연락처에 대한 필터링 - 매개 변수가

필터 문.

편집 : 당신의 쿼리 문자열을 구문 분석 사용이 :

var parsedUrl = url.parse(request.url, true); 
var filterStatement = parsedUrl.query.filter; 
+0

안녕하세요, 샘플 코드를 제공해 주시겠습니까? 나는 표현/노드에서 URL 쿼리와 공통점이 없다. –

+0

그래, 나는 filterseatement를 mongoose find expression에 넣었다. 이제 URL을 어떻게 필터링 할 수 있을까요? 나는 GET/contacts를 시도 했습니까? filter = username 그러나 이것은 전혀 필터링되지 않으며 어떻게 여러 개의 필터를 정의 할 수 있습니까? –

+0

Mongoose/MongoDB find 구문에 관해서는 Mongoose 문서를 참조하십시오 : http://mongoosejs.com/docs/finding-documents.html 및 MongoDB 쿼리 : http://www.mongodb.org/display/DOCS/고급 + 검색어. – lindstromhenrik

1

흥미로운 질문입니다. 이것은 내가 여러 번 토론 한 내용입니다.

나는 명확한 대답이 없다고 생각합니다. 아니면 어쩌면 저도 모르거나 동의하지 않습니다. /contacts/_search 주소록에 대한 작업 (이 경우 검색)을 수행하는 새 경로를 추가해야한다고 말합니다. 당신이하는 일을 명확히하고 정의하십시오.

+0

이것이 추가 검색 엔진에 대한 좋은 접근 방법이라고 생각합니다. 그러나 정복은 쇼 동작에 대해 더 많은 논리가 될 것입니다. –

+0

나는 네가하고있는 일에서 네가 뭘했는지 인상을 받고 있었다. 하지만 lindstromhenrik도 좋은 접근 방식을 가졌습니다. –

-1

GET /contacts 모든 연락처를 찾습니다

var url = require('url'); 

와 ('요청'되는 당신의 nodejs HTTP 요청 객체) 핸들러에

. 모든 연락처의 하위 집합이 필요합니다. URI에서 구분 기호는 하위 집합을 나타 냅니까? 그것은 "?"이 아닙니다. 그것은 비 계급 적입니다. "/"문자는 계층 경로 세그먼트를 구분하는 데 사용됩니다. 따라서 연락처의 하위 집합에 대해서는 /contacts/like/dave/ 또는 /contacts/by_name/susan/과 같은 URI를 사용하십시오.

경로 세그먼트별로 데이터를 하위 집합으로 지정하는이 개념은 더 많은 컬렉션을위한 것이며 더 광범위하게 적용됩니다. 사이트 전체가 집합이며 각 최상위 경로 세그먼트는 하위 집합을 정의합니다. http://yoursite.example/contactshttp://yoursite.example/의 하위 집합입니다. 또한 더 좁게 적용됩니다. /contacts/:id/contacts의 하위 집합이고 /contacts/:id/firstname/contacts/:id의 하위 집합입니다.