2016-06-22 6 views
0

Können wir einen Header-Parameter obligatorisch, aber nicht den Wert mit @RequestHeader?@RequestHeader erforderte Eigenschaft Verhalten für Request-Parameter und Wert

Zum Beispiel, wenn wir verwenden

@RequestHeader(value = "abc", required = true) 

beiden Parameter und es Wert haben, dort zu sein.

Edit: Angenommen, ich rufe einige Rest api hat oben Anfrage Kopfparameter mit "abc" aber keinen Wert. Also in diesem Fall kann ich den Rest api erfolgreich aufrufen, da ich mit "abc" header param aufgerufen habe, auch wenn ich keinen Wert eingegeben habe. Aufgrund einiger Governance-Tool-Regel muss ich einen bestimmten Header-Parameter haben, aber ich möchte nicht erzwingen, dass Benutzer einen Wert eingeben.

+1

Ich bin verwirrt, was es Sie wollen, sprechen Sie über Anforderungsparameter, aber das nächste Header? Die Frage ist verwirrend. –

+0

was willst du eigentlich? Diese Frage ist verwirrend. Nach dem Lesen 3 Mal, habe dich nicht, was willst du. :) bitte ausführlicher. –

+0

Ich denke, Sie wollen keine Anfrage Header, sondern eine Anfrage param. Dafür ist eine separate Anmerkung @RequestParam vorgesehen. Hast du das gebunden? –

Antwort

0

Gegenwärtig bietet @RequestHeader keine zusätzliche Möglichkeit, den Wert des Parameters als obligatorisch zu prüfen, d. H. Nicht null.

unten sind die verfügbaren Felder pro Spring Doc

  • defaultValue Gegeben: Der Standardwert als Ausweich zu verwenden.
  • name: Der Name des Anforderungsheaders, an den gebunden werden soll.
  • required: Ob die Kopfzeile erforderlich ist.
  • value: Alias ​​für Namen()

Also, was Sie die Parameter lesen tun können, ist entweder mit Hilfe von @RequestHeader oder injiziert eine HttpServletRequest Anfrage, gelesen von request.getHeader (...) und Scheck innerhalb der Controller-Methode, wenn der Wert existiert und kann dann Methoden aufrufen, um die notwendige Logik durchzuführen.

Obwohl können Sie sicherstellen, dass der Parameter mit Hilfe der erforderlichen Attribut existiert für zB @RequestHeader(value = "Authorization", required = true) String authorization)

+0

ja. Wenn der Benutzer keinen Wert für Authorization eingibt, wird er nicht in die cotroller -Methode gehen und 400 ungültige Anfragen – Harshana

+0

in der Lösung aktualisieren, um stattdessen die Header-Daten vom Anfrageobjekt zu lesen oder auf dem @RequestHeader zu antworten – Mudassar

Verwandte Themen