Binding from Multiple Query values

Instead of binding from a single section of the request, it may be desirable to bind all query values for example to a POJO. This can be achieved by using the exploded operator (?pojo*) in the URI template. For example:

Binding Request parameters to POJO

  1. import io.micronaut.http.HttpStatus;
  2. import io.micronaut.http.annotation.Controller;
  3. import io.micronaut.http.annotation.Get;
  4. import edu.umd.cs.findbugs.annotations.Nullable;
  5. import javax.validation.Valid;
  6. @Controller("/api")
  7. public class BookmarkController {
  8. @Get("/bookmarks/list{?paginationCommand*}")
  9. public HttpStatus list(@Valid @Nullable PaginationCommand paginationCommand) {
  10. return HttpStatus.OK;
  11. }
  12. }

Binding Request parameters to POJO

  1. import io.micronaut.http.HttpStatus
  2. import io.micronaut.http.annotation.Controller
  3. import io.micronaut.http.annotation.Get
  4. import javax.annotation.Nullable
  5. import javax.validation.Valid
  6. @Controller("/api")
  7. class BookmarkController {
  8. @Get("/bookmarks/list{?paginationCommand*}")
  9. HttpStatus list(@Valid @Nullable PaginationCommand paginationCommand) {
  10. HttpStatus.OK
  11. }
  12. }

Binding Request parameters to POJO

  1. import io.micronaut.http.HttpStatus
  2. import io.micronaut.http.annotation.Controller
  3. import io.micronaut.http.annotation.Get
  4. import io.micronaut.validation.Validated
  5. import javax.validation.Valid
  6. @Controller("/api")
  7. open class BookmarkController {
  8. @Get("/bookmarks/list{?paginationCommand*}")
  9. open fun list(@Valid paginationCommand: PaginationCommand): HttpStatus {
  10. return HttpStatus.OK
  11. }
  12. }