2017-11-14 13 views
1

제거되지 않은 measurements에서 installations까지 마지막으로 검색 할 때 쿼리의 모양이 어떻게되어야합니까?RESTful 방식으로 필터를 적용 할 리소스의 마지막 데이터를 검색하는 쿼리를 디자인하는 방법은 무엇입니까?

그런가요? 건은

/my-web-service/installations/measurements/last?removed=false 

, 나는 installations에서 제거되지 않은 마지막 measurements를 검색하고 싶지 않아요. 마지막으로 measurementsinstallations에서 검색하지 않고 제거하려고합니다.

+0

의 관계는 설치 및 측정 사이에 여기에 무엇입니까)? – Opal

+0

한 번의 설치로 많은 측정을 수행 할 수 있습니다. – Defozo

+0

여기에서는 모든 설치 (제거되지 않은)에서 마지막 측정을 모두 검색하려고합니다. – Defozo

답변

1

내가 여기 몇 가지 가능성을 참조 : 엔드 포인트 트랜잭션에서 데이터를 읽을해야하는 경우

  1. 을, 당신이 그것을 설계 방법은 갈 수있는 방법입니다. 내가 변경하려는 것은 removed에서 installationRemoved까지의 매개 변수의 이름입니다. 설명이 더 많으므로 끝점을 /my-web-service/measurements/으로 줄이면됩니다. installations으로 클라이언트가 작동하는 범위가 명확하지 않기 때문입니다. 또한 since 매개 변수를 필터링하지 말고 을 마지막으로 측정 했습니까? 그것은 더 나은 또는 악화 때 그것은 (더 나은하지 않습니다

    • /my-web-service/installations/?removed=false
    • /my-web-service/measurements/?since=timestamp&installations=<array>

    :

  2. 는 그것을 두 개의 엔드 포인트를 나눌 기회 내가 추가 할 것있다) 그러나 사용자에 대해 더 쉽고 예측 가능합니다.

일반적으로 하나의 특정 사항을 수행하는 대신 필터링 옵션을 사용하여 일반적인 끝점을 추가하려고합니다. 이 방법은 사용하기 어렵고 느슨한 API로 이어집니다. 또한 filtering에 있습니다. 고객이 그것을 사용하는 경우

그리고 최종 통지, 당신의 API들이 있기 때문에 좋지 않다뿐만 그들이 그것을 좋아하는 때

+0

처음에는'measured /? since ='보다는'measurements? since ='입니까? 둘째로, URL에'& installations = [1, 2, 3]'또는'& installation = 1 & installation = 2 & installation = 3' 형식의 배열을 사용해야합니까? – Defozo

+0

@Defozo, 반드시 슬래시로 끝나야한다.) 후자의 경우 기술 스택 (잘 구현하지 않아야 함)과 잘 알려진 표준에 따라 다르므로 다음과 같아야한다. 배열이 HTTP 쿼리 매개 변수에서 어떻게 처리되는지에 관해서는 installation = 1 & installation = 2 & installation = 3'을 참조하십시오. – Opal

+0

@Defozo, 그것은 당신에게 달렸습니다;) 항상 끝점을 슬래시로 끝냅니다. – Opal

1

this best practices article에 따르면, 당신은 "일반적인 쿼리에 대한 별칭을"사용할 수 있습니다

이 쉽게 접근 편안하고 경로로 조건 세트를 포장을 고려, 일반 소비자에 대한 API 경험 쾌적한하려면. 예를 들어, 위 최근에 닫은 티켓 쿼리/GET/티켓으로 패키지화

그래서

을 recently_closed 수 있습니다, 귀하의 경우, 그것은 수 : non_removed는 별칭

/my-web-service/installations/non_removed/measurements/last 

될 경우 제거되지 않은 설치를 쿼리합니다.

희망이 있습니다.