Skip to content

[client api] Support use of @BeanParam #66

Closed
@rbygrave

Description

@rbygrave

Given:

package org.example;

import io.avaje.http.api.Header;
import io.avaje.http.api.QueryParam;

public class CommonParams {

  public Long firstRow;
  public Long maxRows;
  public String sortBy;
  @QueryParam("X-Xtr")
  private String extra;
  @Header
  public String filter;

  public Long firstRow() {
    return firstRow;
  }

  public String getExtra() {
    return extra;
  }
}
  @Post("withBeanParam/{id}")
  void postWithBeanParam(UUID id, @BeanParam CommonParams commonParams);

The generated code is:

  // POST withBeanParam/{id}
  @Override
  public void postWithBeanParam(UUID id, CommonParams commonParams) {
    clientContext.request()
      .path("withBeanParam").path(id)
      .queryParam("firstRow", commonParams.firstRow())
      .queryParam("maxRows", commonParams.maxRows)
      .queryParam("sortBy", commonParams.sortBy)
      .queryParam("X-Xtr", commonParams.getExtra())
      .header("Filter", commonParams.filter)
      .POST()
      .asVoid();
  }

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions