2013-06-04 9 views
5

Unten ist ein POST-Endpunkt in meinem Frühjahr MVC REST-Dienst. Ich möchte Frame Frameworks verwenden, um sicherzustellen, dass die Liste, die ich erhalte, nicht leer ist. Wie mache ich es? Muss ich Wrapper Bohne um listOfLongs zur Verfügung stellen?Wie validiere Anfrage Parameter, wenn es keine Bean im Frühjahr MVC ist?

@RequestMapping(value = "/some/path", method = RequestMethod.POST) 
    @ResponseBody 
    public Foo bar(@Valid @NotEmpty @RequestBody List<Long> listOfLongs) { 

    /* if (listOfLongs.size() == 0) { 
      throw new InvalidRequestException(); 
     } 
    */ 

     // do some useful work 
    } 

Was sollte der Anfragetext sein?

1) [123,456,789] 
2) { listOfLongs : [123,456,789]} 

Antwort

4

Die Bereitstellung einer Verpackung Bohnen ist eine gute Praxis.

class LongList { 

@NotEmpty 
private List<Long> listOfLongs; 

// Setters and Getters ... 

} 

Dann sollte die Anfrage Körper { listOfLongs : [123,456,789]} sein

@RequestMapping(value = "/some/path", method = RequestMethod.POST) 
@ResponseBody 
public Foo bar(@Valid @RequestBody LongList listOfLongs) { 

    // do some useful work 
} 
+0

Wie zu validieren, wenn der param nur ein String ist? Und möchte nicht wickeln. – Cengiz

+0

Warum ist diese gute Praxis? –