Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

[Feat]: Simplification of the client API?

Abierto
#517 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
65/100
Tipo de issue
Refactorización
Claridad
Bien especificado
Estado de actividad
Estancado
Stack tecnológico
java
Área
api

Línea de trabajo

Examine la API del cliente en el módulo spec, centrándose en los métodos que utilizan objetos XXXParams como TaskIdParams. Examine el método sendMessage existente como referencia del patrón. Identifique todos los métodos que podrían simplificarse y, a continuación, cree versiones sobrecargadas que acepten parámetros primitivos y deleguen en las implementaciones existentes. Asegúrese de mantener la compatibilidad con versiones anteriores y pruebe los cambios.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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<String, Object> 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
  • I agree to follow this project's Code of Conduct
Lenguaje dominante
Java
Estrellas
504
Forks
184
Merge medio
1 d 13 h
PR fusionados (30 d)
31

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de a2aproject/a2a-java

Todos los issues de a2aproject/a2a-java

Issues similares

Más issues de Java

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.