More Convenience with Rest Client for MicroProfile and Method Overloading 📎
import javax.ws.rs.DefaultValue;
import javax.ws.rs.GET;
import javax.ws.rs.HeaderParam;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/hello")
public class GreetingResource {
    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String hello(@DefaultValue("james") @HeaderParam("firstName") String firstName,
                        @DefaultValue("duke") @HeaderParam("lastName") String lastName) {
        return firstName + " " + lastName;
    }
}
...is accessible via a Rest Client for MicroProfile interface with overloaded methods:
import javax.ws.rs.GET;
import javax.ws.rs.HeaderParam;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import org.eclipse.microprofile.rest.client.inject.RegisterRestClient;
@Path("/hello")
@Produces(MediaType.TEXT_PLAIN)
@RegisterRestClient(baseUri = "http://localhost:8080")
public interface GreetingResourceClient {
    @GET
    public String hello(@HeaderParam("firstName") String firstName, @HeaderParam("lastName") String lastName);
    @GET
    public String hello(@HeaderParam("firstName") String firstName);
    @GET
    public String hello();
    
}
Now the client can be injected and the overloaded methods conveniently called:
import static org.junit.jupiter.api.Assertions.assertEquals;
import javax.inject.Inject;
import org.eclipse.microprofile.rest.client.inject.RestClient;
import org.junit.jupiter.api.Test;
import io.quarkus.test.junit.QuarkusTest;
@QuarkusTest
public class GreetingResourceTest {
    @Inject
    @RestClient
    GreetingResourceClient client;
    @Test
    void helloWithoutParameters(){
        var hello = this.client.hello();
        assertEquals(hello, "james duke");
    }
    @Test
    void helloWithFirstName(){
        var hello = this.client.hello("john");
        assertEquals(hello, "john duke");
    }
    @Test
    void helloWithFirstNameAndLastName(){
        var hello = this.client.hello("john","dukem");
        assertEquals(hello, "john dukem");
    }  
}