2016-09-02 1 views
0

Zunächst einmal ein schönes Wochenende für diejenigen, die sind! Für die anderen viel Glück :)PathParam Layer überprüfen REST

Ich erstelle eine App mit Rest-Architektur.

Ich habe nur eine einfache Frage, aber ich weiß nicht, wie ich es erklären soll.

Nehmen wir ein Beispiel und vielleicht kommt die Frage danach.

Stellen Sie sich vor, Sie haben ein Pfadelement namens Auto. Wenn ich ein GET auf es zu tun gibt sie den carInformation

So würde ich definieren:

@GET 
@Path("/car/{carid}/display") 
public Response getCar(@PathParam("carid")String carID) 

Wenn ich Aktionen definieren, die auf diesem Auto wie offen auszuführen, schließen, starten etc:

@POST 
@Path("/car/{carid}/startup") 
public Response startup(@PathParam("carid")String carID) 

@POST 
@Path("/car/{carid}/open") 
public Response open(@PathParam("carid")String carID) 

@POST 
@Path("/car/{carid}/close") 
public Response close(@PathParam("carid")String carID) 

Gibt es einen gemeinsamen Check bei/car/{carid} wie "ist es mein Auto?" "Ist es in der Garage?" oder muss ich es mit Abstraktion zum Beispiel zwischen dem Prozess, der nach

aufgerufen wird, implementieren In der Tat verstehe ich nicht das wahre Ziel von Pfadparam. Warum nicht einfach

@GET 
@Path("/car/displayCar") 
public Response getCar(@QueryParam("carid")String carID) 

@POST 
@Path("/car/startup") 
public Response startup(String carID) 

@POST 
@Path("/car/{carid}/open") 
public Response open(String carID) 

@POST 
@Path("/car/{carid}/close") 
public Response close(String carID) 

Dank alle für Sie

Mit freundlichen Grüßen

Geoffrey Muselli

+0

Also, für den Anfang ist dies kein Schlag - nur eine Klarstellung. Wenn Sie Aktionen in Ihrer URL definieren, entwerfen Sie im Allgemeinen keine RESTful-API. Sie sprechen RPC (keine schlechte Sache, notwendigerweise, nur ein Unterschied in der Terminologie. – Gandalf

Antwort

0

Es im Voraus beantworten gibt viele Möglichkeiten, um dies sowohl REST zu gehen und RPC - und ich bin nicht hier, um zu sagen, welches besser ist (Sie müssen herausfinden, welches einfacher/besser/etc für die Verbraucher Ihrer API [IMO] wäre). Dazu werde ich einen REST-Ansatz verwenden.

Für die Anzeige der Informationen eines einzelnen Autos ist kein Endpunkt erforderlich, der auf "display" endet. Eine GET Anfrage an/Auto/{Auto ID} ist ausreichend. Dieses Dokument kann Dinge wie den aktuellen Zustand des Autos (offen, geschlossen, laufen, explodiert, etc.). Die GET ist Ihre Aktion, die/Auto/{Auto ID} ist Ihre Sache, und das Dokument, das es zurückgibt (und Ausnahmen über POST oder PUT sind das Protokoll Ihrer API)

Verwandte Themen