a2aproject / a2aproject/a2a-java
[Feat]: Simplification of the client API?
- 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
Đánh giá
Issue này chưa được đánh giá.