Übergeben von Parametern im Nachrichtenheader mit einer REST-API

8

Ich entwickle eine REST-API und muss Kryptogramme übertragen, um die Nachricht für jede Anfrage in einem Anwendungsprozess zu authentifizieren (MAC-Verschlüsselung von geheimen Schlüsseln). Ich habe darüber nachgedacht, sie in den Nachrichtenkopf zu schreiben, um zu vermeiden, dass Nichtdateninformationen in den Nachrichtentext eingefügt werden, der das Posted / Retrieved-Objekt (XML oder JSON) enthält.

Ist es eine gute Praxis?

Kann ich so viele Parameter hinzufügen, wie ich möchte? Ich habe gelesen, dass ich ihnen "x-" voranstellen muss. Das Verhalten dieses Parameters ist genau dasselbe wie Pfad- oder Abfrageparameter?

Ich benutze Jersey.

Danke für Ihre Hilfe.

    
Zofren 08.10.2010, 16:55
quelle

1 Antwort

8
  1. Ja Ich glaube, es ist akzeptabel, Header-Parameter zu haben, um bestimmte Daten zu übertragen. Der JAX-RS-Standard definiert sogar die @HeaderParam-Annotation . Einfaches Beispiel von @HeaderParam .

  2. Es ist eine Konvention, nicht standardmäßige HTTP-Header mit "x -" zu versehen.

Ich hatte eine ähnliche Situation wie Sie: Ich musste bei jedem REST-Aufruf Benutzer-Token und Anwendungs-ID übertragen. Um Code-Duplizierung zu vermeiden, implementierte ich PreProcessInterceptor ( Ich benutze Resteasy), über die alle REST-Anfragen geroutet werden. Wenn das Benutzer-Token nicht gültig ist und der Benutzer keine Berechtigungen für die angegebene Anwendungs-ID hat, gebe ich 401 nicht autorisiert zurück. Mein Code sah ähnlich (vereinfachte Version) aus:

%Vor%     
Peter Knego 20.02.2011, 16:32
quelle