2016-06-22 4 views
0

나는 편안한 웹 서비스를 짓고 있어요 :REST API에서 GET 요청에 필터 인수를 전달하는 방법은 무엇입니까?

  • GET /clients에서 나는 모든 알려진 클라이언트 목록을 얻고있다. 그것이 있어야로 GET /clients/1에서
  • , 나는 clientId 1.

모두를위한 클라이언트 객체를 얻고있다.

해당 클라이언트의 이름은 authorized입니다. 웹 UI에서이를 관리하기 위해 승인 된 고객과 권한이없는 고객을위한 테이블을 분리했습니다. 물론, 인증되지 않은 클라이언트를 표시하기 위해 서버에서 모든 클라이언트를로드하고 싶지는 않습니다.

질문은 어떻게 RESTful URL을 통해 클라이언트를 필터링 할 수 있습니까? 적절한 RESTful API를 수행하기 위해 쿼리 매개 변수는 옵션이 아닙니다.

나는 이미 GET /unauthorizedClientsGET /authorizedClients을 추가로 생각했지만 제대로 된 것 같지 않습니다. 하나의 클라이언트를 제거하는 데 여전히 DELETE/clients/% clientId %`를 사용합니다.

나는이 문제에 대해 기쁘게 접근 할 수 없다. 이것이 어떻게 풀릴 수 있는지에 대한 조언은 환영합니다.

답변

0

나는 /clients/unauthorized/clients/authorized으로 갈 것입니다. 디렉토리 인과 같은 테일러 리소스 URI가 필요합니다.

이렇게하면 /client/[id] 리소스에 대해 클라이언트를 삭제해도 문제가 없습니다.

+0

그래, 그게 정확히 찾고 있다면. 감사합니다. –

+0

@HerrDerb 문제 없어요, 당신을 환영합니다! –

+0

@HerrDerb'clients'가'authorized'와'unauthorized' 둘 다 다른 상태의 단일 리소스로 간주되면이 대답은 의미가 없습니다. 쿼리 매개 변수를 사용하는 것이 훨씬 좋습니다. – Opal

1

나는 쿼리 매개 변수를 사용하지 못하게하는 것이 무엇인지 궁금 할뿐입니다. 이들은 REST API에서 자원 콜렉션을 필터링하는 가장 적절한 f}입니다. 검색어 매개 변수를 사용하면 API가 보다 작아지지 않습니다.RESTful

  • 공인 :

    당신은 다음을 할 수 GET /clients?status=authorized

  • 권한이 없음 : GET /clients?status=unauthorized

을 또 다른 옵션은 다음과 같습니다

  • 가 공인 : GET /clients/authorized
  • 승인되지 않음 : GET /clients/unauthorized

정말 쿼리 매개 변수를 고려해야합니다.

+1

예, 질문 매개 변수 +1! – Opal