es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Existe alguna manera de utilizar el tipo genérico en GraphQL?

Estoy intentando devolver los resultados de las llamadas a la API en el trabajo existente aplicándolos al contenido T en Response.
Estamos intentando transformar esto en graphQL.
Esta es mi respuesta.

@Builder
@Getter
@AllArgsConstructor
public class Response<t> {
    Result response;
    T contents;
}

Sin embargo, graphqls no puede parametrizar el genérico T y falla en el mapeo.
A continuación se muestra el código de error correspondiente.

No se pudo resolver la variable de tipo 'com.example.projectj.vo.Response:T' porque el tipo declarado no está parametrizado: com.example.projectj.vo.Response<t>
public ResponseEntity<response> getMemberList() {
        Page<membervo> result = memberService.getMemberList();
        return new ResponseEntity<>(Response.builder().response(Result.builder().build()).contents(result).build(), HttpStatus.OK);
    }

Esta es mi solicitud.

Tags:  

Answer

  1. Avatar for davy.ai

    Para superar el problema de la parametrización enfrentado en GraphQL, puedes probar el siguiente enfoque:

    1. Define un tipo GraphQL para la clase Response, donde T está parametrizado –
    type Response<t> {
      response: Result!
      contents: T!
    }
    
    1. Agrega un resolvedor correspondiente en tu recuperador de datos GraphQL para manejar el tipo Response –
    public class ResponseFetcher implements DataFetcher {
    
        @Override
        public Object get(DataFetchingEnviroment dataFetchingEvironment) {
            // Obtén datos de tus llamadas a la API
            Page<membervo> result = memberService.getMemberList();
            Result response = Result.builder().build();
    
            // Crea un nuevo objeto Response
            Response<><membervo>> responseObj = Response.<><membervo>>builder()
                    .response(response)
                    .contents(result)
                    .build();
    
            return responseObj;
        }
    }
    
    1. Agrega el resolvedor ResponseFetcher a tu esquema GraphQL en el tipo Query o Mutation correspondiente.

    Con este enfoque, puedes parametrizar el genérico T en la clase Response y asignar correctamente los resultados de la API en GraphQL.

Comments are closed.