Angenommen, meine Anwendung verwaltet Objekte namens Workload mit den folgenden Feldern. Ich möchte eine REST-Schnittstelle für den Benutzer bereitstellen, um Workloads nach Labels abzufragen.Was ist eine RESTful-Methode zum Abfragen von Filtern?
"Workload": {"id":"test1", "labels":["A", "B", "C"]}
"Workload": {"id":"test2", "labels":["A", "C", "D"]}
"Workload": {"id":"test3", "labels":["A", "B", "D"]}
Frage: Wie gestalte ich den REST-Endpunkt, so dass es würde Abfrageauslastung von mehr Etiketten als Filter unterstützt?
Beispiel Query 1: Ich möchte GET
alle Arbeitslasten mit beiden "A" und "B".
Ich denke etwas wie GET
als Verb, workloads
als Endpunkt, dann verwenden Sie eine {"labels": ["A", "B"]}
als Anfrage Körper. Aber das scheint nicht wie ein RESTful Weg, Dinge zu tun
Alternativ kann ich GET /labels/{label-id}/workloads
tun, aber das würde nur mit einem Etikett pro Zeit arbeiten.
Beispielabfrage 2: Ich möchte GET
alle Workloads mit dem Label „A“ oder „B“, aber keine „C“
Keine Ahnung, wie überhaupt diese Art von Rest api zu tun, andere als den Benutzer bitten, getrennt nach A, B, C zu fragen, dann selbst die richtigen Einstellungen vorzunehmen?
Die zweite Abfrage ist tracked as another question
Ich glaube nicht, dass es etwas falsch mit Abfrageparametern ist. Gibt es einen Grund, warum du sie vermeiden willst? – mrmcgreg
Ich hatte Zweifel, ob ich Abfrageparameter wiederholen möchte/kann.Da ich meine Anwendung in 'golang' programmiere, benutze ich eine [third party library'httprouter'] (https://github.com/julienschmidt/httprouter), die mir hilft, den Parameter automatisch zu parsen, der momentan nur Single unterstützt Abfrageparameter ... Dinge wie 'workload /: workload_id/labels /: label_id' – cookieisaac