java.lang.Object
io.evitadb.externalApi.http.EndpointHandler<io.evitadb.externalApi.graphql.io.GraphQLEndpointExecutionContext>
io.evitadb.externalApi.graphql.io.GraphQLHandler
- All Implemented Interfaces:
com.linecorp.armeria.common.util.Unwrappable,com.linecorp.armeria.server.HttpService,com.linecorp.armeria.server.Service<com.linecorp.armeria.common.HttpRequest,com.linecorp.armeria.common.HttpResponse>
public class GraphQLHandler
extends io.evitadb.externalApi.http.EndpointHandler<io.evitadb.externalApi.graphql.io.GraphQLEndpointExecutionContext>
HTTP request handler for processing
GraphQLRequests and returning GraphQLResponses using passed
configured instance of GraphQL.- Author:
- Lukáš Hornych, FG Forrest a.s. 2022
-
Constructor Summary
ConstructorsConstructorDescriptionGraphQLHandler(Evita evita, com.fasterxml.jackson.databind.ObjectMapper objectMapper, GraphQLInstanceType instanceType, AtomicReference<graphql.GraphQL> graphQL) -
Method Summary
Modifier and TypeMethodDescriptionprotected io.evitadb.externalApi.graphql.io.GraphQLEndpointExecutionContextcreateExecutionContext(com.linecorp.armeria.common.HttpRequest httpRequest) protected <T extends io.evitadb.externalApi.exception.ExternalApiInternalError>
TcreateInternalError(String message) protected <T extends io.evitadb.externalApi.exception.ExternalApiInternalError>
TcreateInternalError(String message, Throwable cause) protected <T extends io.evitadb.externalApi.exception.ExternalApiInvalidUsageException>
TcreateInvalidUsageException(String message) protected CompletableFuture<io.evitadb.externalApi.http.EndpointResponse>doHandleRequest(io.evitadb.externalApi.graphql.io.GraphQLEndpointExecutionContext executionContext) Set<com.linecorp.armeria.common.HttpMethod>protected <T> CompletableFuture<T>parseRequestBody(io.evitadb.externalApi.graphql.io.GraphQLEndpointExecutionContext executionContext, Class<T> dataClass) com.linecorp.armeria.common.HttpResponseserve(com.linecorp.armeria.server.ServiceRequestContext ctx, com.linecorp.armeria.common.HttpRequest req) protected voidwriteResponse(io.evitadb.externalApi.graphql.io.GraphQLEndpointExecutionContext executionContext, com.linecorp.armeria.common.HttpResponseWriter responseWriter, Object response, io.netty.channel.EventLoop eventExecutors) Methods inherited from class io.evitadb.externalApi.http.EndpointHandler
afterRequestHandled, beforeRequestHandled, readRawRequestBody, validateRequestMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.linecorp.armeria.server.HttpService
decorate, decorate, exchangeType, optionsMethods inherited from interface com.linecorp.armeria.server.Service
as, serviceAdded, shouldCachePath, unwrapMethods inherited from interface com.linecorp.armeria.common.util.Unwrappable
equalsIgnoreWrapper, unwrapAll
-
Constructor Details
-
GraphQLHandler
public GraphQLHandler(@Nonnull Evita evita, @Nonnull com.fasterxml.jackson.databind.ObjectMapper objectMapper, @Nonnull GraphQLInstanceType instanceType, @Nonnull AtomicReference<graphql.GraphQL> graphQL)
-
-
Method Details
-
serve
@Nonnull public com.linecorp.armeria.common.HttpResponse serve(@Nonnull com.linecorp.armeria.server.ServiceRequestContext ctx, @Nonnull com.linecorp.armeria.common.HttpRequest req) - Specified by:
servein interfacecom.linecorp.armeria.server.HttpService- Specified by:
servein interfacecom.linecorp.armeria.server.Service<com.linecorp.armeria.common.HttpRequest,com.linecorp.armeria.common.HttpResponse> - Overrides:
servein classio.evitadb.externalApi.http.EndpointHandler<io.evitadb.externalApi.graphql.io.GraphQLEndpointExecutionContext>
-
createExecutionContext
@Nonnull protected io.evitadb.externalApi.graphql.io.GraphQLEndpointExecutionContext createExecutionContext(@Nonnull com.linecorp.armeria.common.HttpRequest httpRequest) - Specified by:
createExecutionContextin classio.evitadb.externalApi.http.EndpointHandler<io.evitadb.externalApi.graphql.io.GraphQLEndpointExecutionContext>
-
doHandleRequest
@Nonnull protected CompletableFuture<io.evitadb.externalApi.http.EndpointResponse> doHandleRequest(@Nonnull io.evitadb.externalApi.graphql.io.GraphQLEndpointExecutionContext executionContext) - Specified by:
doHandleRequestin classio.evitadb.externalApi.http.EndpointHandler<io.evitadb.externalApi.graphql.io.GraphQLEndpointExecutionContext>
-
createInternalError
@Nonnull protected <T extends io.evitadb.externalApi.exception.ExternalApiInternalError> T createInternalError(@Nonnull String message) - Specified by:
createInternalErrorin classio.evitadb.externalApi.http.EndpointHandler<io.evitadb.externalApi.graphql.io.GraphQLEndpointExecutionContext>
-
createInternalError
@Nonnull protected <T extends io.evitadb.externalApi.exception.ExternalApiInternalError> T createInternalError(@Nonnull String message, @Nonnull Throwable cause) - Specified by:
createInternalErrorin classio.evitadb.externalApi.http.EndpointHandler<io.evitadb.externalApi.graphql.io.GraphQLEndpointExecutionContext>
-
createInvalidUsageException
@Nonnull protected <T extends io.evitadb.externalApi.exception.ExternalApiInvalidUsageException> T createInvalidUsageException(@Nonnull String message) - Specified by:
createInvalidUsageExceptionin classio.evitadb.externalApi.http.EndpointHandler<io.evitadb.externalApi.graphql.io.GraphQLEndpointExecutionContext>
-
getSupportedHttpMethods
- Specified by:
getSupportedHttpMethodsin classio.evitadb.externalApi.http.EndpointHandler<io.evitadb.externalApi.graphql.io.GraphQLEndpointExecutionContext>
-
getSupportedRequestContentTypes
- Overrides:
getSupportedRequestContentTypesin classio.evitadb.externalApi.http.EndpointHandler<io.evitadb.externalApi.graphql.io.GraphQLEndpointExecutionContext>
-
getSupportedResponseContentTypes
- Overrides:
getSupportedResponseContentTypesin classio.evitadb.externalApi.http.EndpointHandler<io.evitadb.externalApi.graphql.io.GraphQLEndpointExecutionContext>
-
parseRequestBody
@Nonnull protected <T> CompletableFuture<T> parseRequestBody(@Nonnull io.evitadb.externalApi.graphql.io.GraphQLEndpointExecutionContext executionContext, @Nonnull Class<T> dataClass) - Overrides:
parseRequestBodyin classio.evitadb.externalApi.http.EndpointHandler<io.evitadb.externalApi.graphql.io.GraphQLEndpointExecutionContext>
-
writeResponse
protected void writeResponse(@Nonnull io.evitadb.externalApi.graphql.io.GraphQLEndpointExecutionContext executionContext, @Nonnull com.linecorp.armeria.common.HttpResponseWriter responseWriter, @Nonnull Object response, @Nonnull io.netty.channel.EventLoop eventExecutors) - Overrides:
writeResponsein classio.evitadb.externalApi.http.EndpointHandler<io.evitadb.externalApi.graphql.io.GraphQLEndpointExecutionContext>
-