2016-04-12 14 views
1

Ich habe die URL-PfadWie erhalten Sie Pfadvariablen von einer REST-URL?

/customer/7854/order/125 

Wie kann ich die customerID7854 und die orderID125 bekommen? Momentan bearbeite ich das, indem ich die komplette Zeichenfolge aufspalte, aber ich mag sie nicht.

Gibt es Alternativen?

+0

Was verwenden Sie zum Einrichten des Endpunkts? Frühling MVC? – christopher

+0

Tatsächlich: Spring MVC. – Dai

Antwort

4

Wenn Sie Frühling REST verwenden, können Sie @PathVariable verwenden ("id") lange ID. zB für mehrere Parameter:

@RequestMapping(value = "/ex/foos/{fooid}/bar/{barid}") 
@ResponseBody 
public String getPathValues 
    (@PathVariable long fooid, @PathVariable long barid) { 
    return "Get a specific Bar with id=" + barid + " from a Foo with id=" + fooid; 
} 
1

Wie Sie in den Kommentaren gesagt haben, verwenden Sie Spring MVC.

Zum Glück für Sie, bietet es eine wirklich gute Möglichkeit der Zuordnung von URL-Parametern zu Werten!

@RequestMapping(value = "/{bookmarkId}", method = RequestMethod.GET) 

Wie Sie an der Aktion sehen können, können Sie die bookmarkId angeben. Und dann geben Sie den Parameter ..

Bookmark readBookmark(@PathVariable Long bookmarkId) 

Und jetzt können Sie bookmarkId zugreifen, als ob es ein anderer Wert war.

bearbeiten

Also das Ganze zusammen, aus den Beispielen genommen würde wie folgt aussehen:

@RequestMapping(value = "/{bookmarkId}", method = RequestMethod.GET) 
Bookmark readBookmark(@PathVariable String userId, @PathVariable Long bookmarkId) { 
    this.validateUser(userId); 
    return this.bookmarkRepository.findOne(bookmarkId); 
}