a2aproject / a2aproject/a2a-java

[Feat]: Simplification of the client API?

Đang mở
#517 0 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
Java
Star
490
Fork
172
Merge trung bình
1 ngày 6 giờ
Pull request đã merge (30 ngày)
55

Mô tả

### Is your feature request related to a problem? Please describe.

The `client` API is a thin wrapper around the domain objects in the `spec` module.

I wonder if we could not make the API a bit simpler while retaining all the capabilities it exposes.

### Describe the solution you'd like

For example, a lot of calls wrap their parameters in `XXXParams` object:

```
public Task cancelTask(TaskIdParams request)
```

but TaskIdParams is composed of a `taskId` and a `metadata` map.
Could the call simply be:

```
public Task cancelTask(String taskId, Map metadata) {
return clientTransport.cancelTask(new TaskIdParams(taskId, metadata), request, context);
}
```

and a default method:

```
public default Task cancelTask(String taskId) {
return cancelTask(taskId, emptyMap();
}
```

This way, the `TaskIdParams` does not leak to the `Client` API (making it bigger than it needs to be.

The API is already to that for its `sendMessage` methods that hides the internal `MessageSendParams`.
This is a pattern that should be applied to other methods as well

### Describe alternatives you've considered

_No response_

### Additional context

_No response_

### Code of Conduct

- [x] I agree to follow this project's Code of Conduct

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.