내 응용 프로그램이 다음 필드와 함께 작업 부하라는 개체를 관리한다고 가정 해보십시오. 사용자가 레이블별로 작업 부하를 쿼리 할 수 있도록 REST 인터페이스를 공개하려고합니다.필터를 사용하여 쿼리하는 RESTful 방법은 무엇입니까?
"Workload": {"id":"test1", "labels":["A", "B", "C"]}
"Workload": {"id":"test2", "labels":["A", "C", "D"]}
"Workload": {"id":"test3", "labels":["A", "B", "D"]}
질문 : 어떻게 필터로 여러으로 라벨이 것 때문에 쿼리 워크로드를 지원하는 REST 엔드 포인트를 설계합니까?
예제 쿼리 1 : GET
"A"와 "B"를 모두 포함한 모든 작업 부하를 원합니다.
동사가 GET
이고 끝점이 인 것으로 생각됩니다. 요청 본문으로 {"labels": ["A", "B"]}
을 사용하십시오. 하지만 이것은 일을하는 RESTful 방법처럼 보이지 않습니다.
또는 GET /labels/{label-id}/workloads
을 할 수 있지만 시간당 하나의 라벨에서만 작동합니다.
예제 쿼리 2 : 나는 GET
라벨 "A"또는 "B"하지만 "C"로 모든 워크로드하는 방법을 전혀 나머지 API는 이런 종류의 작업을 수행하는 다른
실마리 없음 사용자에게 A, B, C를 개별적으로 쿼리하도록 요청한 다음 적절한 설정 작업을 직접 수행 하시겠습니까?는
두 번째 쿼리는 tracked as another question
쿼리 매개 변수에 문제가 있다고 생각하지 않습니다. 당신이 그들을 피하기 위해 어떤 이유가 있습니까? – mrmcgreg
쿼리 매개 변수를 반복 할 수 있는지 여부를 의심했습니다.내 응용 프로그램을'golang '에 코딩 할 때, 현재 제 3 자 라이브러리'httprouter' (https://github.com/julienschmidt/httprouter)를 사용하여 매개 변수를 자동으로 구문 분석하는 데 도움을주고 있습니다. 쿼리 매개 변수 ... 'workload/workload_id/labels/: label_id'와 같은 것들 – cookieisaac