Zwei GET-Methoden mit verschiedenen Abfrageparametern: REST

8

Können wir den gleichen GET-URI aber mit anderen Abfrageparametern erstellen?

Zum Beispiel: Ich habe zwei REST GET URIs:

%Vor%

Nun erkennt der REST-Service zwei GET-Methoden nicht als separate und berücksichtigt nur eine GET-Methode, die als erste deklariert wird.

  1. warum verhält es sich so?
  2. Gibt es eine Möglichkeit, zwei GET-Methoden mit unterschiedlichen Abfrageparametern zu erstellen?

Es würde sehr geschätzt werden, wenn Sie irgendeine Ressource zitieren könnten.

    
ritesh 24.06.2013, 07:52
quelle

4 Antworten

18

Weil eine Ressource eindeutig durch ihren PATH (und nicht durch ihre Parameter) identifiziert wird. Zwei Ressourcen, die Sie definieren, haben denselben PATH.

%Vor%

Laut JSR-311 :

  

Solche als Sub-Resource-Methoden bekannten Methoden werden wie normale behandelt   Ressourcenmethode (siehe Abschnitt 3.3), außer dass die -Methode nur aufgerufen wird   für Anforderungs-URIs, die einer durch Verketten erstellten URI-Vorlage entsprechen   die URI-Vorlage der Ressourcenklasse mit der URI-Vorlage der   Methode .

Da Ihr Datenmodell zwei verschiedene Ressourcen enthält, empfehle ich zwei Ruhemethoden mit unterschiedlichen Pfaden:

%Vor%

Dies ist der REST-konforme Weg, da ein URI eine einzige Ressource repräsentiert und es keine Überladung geben sollte. Wenn ein URI mehr als eine Ressource darstellt, bedeutet das, dass Sie irgendwo falsch liegen.

    
darijan 24.06.2013, 07:55
quelle
5

Sie können nicht zwei Getter mit derselben URL, aber unterschiedlichen Anforderungsparametern haben. Was Sie tun können, ist eine Getter-Methode mit vielen Anfrage-Parameter zu haben.

%Vor%

rufen Sie es dann mit zwei Parametern

auf %Vor%

Sie müssen mit der Logik innerhalb der Testmethode umgehen, um diese Parameter entsprechend zu behandeln.

Was Darijan anbelangt, so denke ich, dass es an der Zeit ist, mit zwei Methoden oder einer Methode zu entscheiden, die die Unterstreichungslogik berücksichtigt. Wenn Sie mit zwei Methoden arbeiten, verwenden Sie zwei uri. Wenn die Geschäftslogik in Ordnung ist, mit einer URI zu gehen, dann benutze die Art wie ich geantwortet habe

    
Sanjaya Liyanage 24.06.2013 08:07
quelle
4

Sie können nicht Overload REST Anfragen.

In Ihrer Business-Schicht müssten Sie prüfen, welche der beiden Variablen gesetzt ist und dann müssen Sie die erforderliche Verarbeitung durchführen.

    
JHS 24.06.2013 07:54
quelle
0

Sie können den Restendpunkt in Bezug darauf, welche Anfrage- / Abfrageparameter in der Anfrage vorhanden sind, überladen. Hier ist die Antwort, die meinen Anwendungsfall gelöst hat: zwei Methoden erstellen für dasselbe URL-Muster mit verschiedenen Argumenten

    
arshellium 24.01.2017 07:19
quelle

Tags und Links