2016-05-31 6 views
0

Ich versuche, einen HTTP-Endpunkt zu erstellen, um eine Eigenschaft zu löschen, aber ich möchte einige zusätzliche Metadaten darüber hinzufügen, wer das Löschen durchführt. Ich habe den folgenden Serverseitencode in Jersey.Jersey DELETE Anfrage mit einem Abfrageparameter

@DELETE 
@Path("/properties/{property_id}?deleted_by={deleted_by}") 
public Response deleteProperty(
    @PathParam("property_id") int propertyId, 
    @QueryParam("deleted_by") String deletedBy) 
{ 
    ... 
} 

aber wenn ich versuche, den Endpunkt mit einer URL wie /properties/123?deleted_by=test zu treffen erhalte ich eine 404. Wenn ich die Abfrage-Parameter alles wie vorgesehen funktioniert löschen. Unterstützt Jersey keine Abfrageparameter für DELETE oder mache ich etwas kaputt?

+0

Stellen Sie sicher, dass Sie auf der Client-Seite eine HTTP Delete-Anforderung senden. – Dimitri

Antwort

4

Sie müssen den Abfrageparameter nicht in der Pfadannotation angeben. Nur sollte die folgende Ordnung sein:

@DELETE 
@Path("/properties/{property_id}") 
public Response deleteProperty(
    @PathParam("property_id") int propertyId, 
    @QueryParam("deleted_by") String deletedBy) 
{ 
    ... 
} 

Die Jersey documentation hat ein weiteres Beispiel.

+0

Entfernen des Abfrageparameters aus dem Pfad, der bearbeitet wurde. Vielen Dank! – Dillen