Class GraphQLSchemaHandler

java.lang.Object
io.evitadb.externalApi.http.EndpointHandler<io.evitadb.externalApi.graphql.io.GraphQLSchemaEndpointExecutionContext>
io.evitadb.externalApi.graphql.io.GraphQLSchemaHandler
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 GraphQLSchemaHandler extends io.evitadb.externalApi.http.EndpointHandler<io.evitadb.externalApi.graphql.io.GraphQLSchemaEndpointExecutionContext>
HTTP request handler for returning GraphQLSchema as a DSL string using passed configured instance of GraphQL.
Author:
Lukáš Hornych, FG Forrest a.s. 2023
  • Constructor Summary

    Constructors
    Constructor
    Description
    GraphQLSchemaHandler(Evita evita, AtomicReference<graphql.GraphQL> graphQL)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected io.evitadb.externalApi.graphql.io.GraphQLSchemaEndpointExecutionContext
    createExecutionContext(com.linecorp.armeria.common.HttpRequest httpRequest)
     
    protected <T extends io.evitadb.externalApi.exception.ExternalApiInternalError>
    T
     
    protected <T extends io.evitadb.externalApi.exception.ExternalApiInternalError>
    T
     
    protected <T extends io.evitadb.externalApi.exception.ExternalApiInvalidUsageException>
    T
     
    protected CompletableFuture<io.evitadb.externalApi.http.EndpointResponse>
    doHandleRequest(io.evitadb.externalApi.graphql.io.GraphQLSchemaEndpointExecutionContext executionContext)
     
    Set<com.linecorp.armeria.common.HttpMethod>
     
     
    protected void
    writeResponse(io.evitadb.externalApi.graphql.io.GraphQLSchemaEndpointExecutionContext 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, getSupportedRequestContentTypes, parseRequestBody, readRawRequestBody, serve, validateRequest

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface com.linecorp.armeria.server.HttpService

    decorate, decorate, exchangeType, options

    Methods inherited from interface com.linecorp.armeria.server.Service

    as, serviceAdded, shouldCachePath, unwrap

    Methods inherited from interface com.linecorp.armeria.common.util.Unwrappable

    equalsIgnoreWrapper, unwrapAll
  • Constructor Details

    • GraphQLSchemaHandler

      public GraphQLSchemaHandler(@Nonnull Evita evita, @Nonnull AtomicReference<graphql.GraphQL> graphQL)
  • Method Details

    • createExecutionContext

      @Nonnull protected io.evitadb.externalApi.graphql.io.GraphQLSchemaEndpointExecutionContext createExecutionContext(@Nonnull com.linecorp.armeria.common.HttpRequest httpRequest)
      Specified by:
      createExecutionContext in class io.evitadb.externalApi.http.EndpointHandler<io.evitadb.externalApi.graphql.io.GraphQLSchemaEndpointExecutionContext>
    • doHandleRequest

      @Nonnull protected CompletableFuture<io.evitadb.externalApi.http.EndpointResponse> doHandleRequest(@Nonnull io.evitadb.externalApi.graphql.io.GraphQLSchemaEndpointExecutionContext executionContext)
      Specified by:
      doHandleRequest in class io.evitadb.externalApi.http.EndpointHandler<io.evitadb.externalApi.graphql.io.GraphQLSchemaEndpointExecutionContext>
    • createInternalError

      @Nonnull protected <T extends io.evitadb.externalApi.exception.ExternalApiInternalError> T createInternalError(@Nonnull String message)
      Specified by:
      createInternalError in class io.evitadb.externalApi.http.EndpointHandler<io.evitadb.externalApi.graphql.io.GraphQLSchemaEndpointExecutionContext>
    • createInternalError

      @Nonnull protected <T extends io.evitadb.externalApi.exception.ExternalApiInternalError> T createInternalError(@Nonnull String message, @Nonnull Throwable cause)
      Specified by:
      createInternalError in class io.evitadb.externalApi.http.EndpointHandler<io.evitadb.externalApi.graphql.io.GraphQLSchemaEndpointExecutionContext>
    • createInvalidUsageException

      @Nonnull protected <T extends io.evitadb.externalApi.exception.ExternalApiInvalidUsageException> T createInvalidUsageException(@Nonnull String message)
      Specified by:
      createInvalidUsageException in class io.evitadb.externalApi.http.EndpointHandler<io.evitadb.externalApi.graphql.io.GraphQLSchemaEndpointExecutionContext>
    • getSupportedHttpMethods

      @Nonnull public Set<com.linecorp.armeria.common.HttpMethod> getSupportedHttpMethods()
      Specified by:
      getSupportedHttpMethods in class io.evitadb.externalApi.http.EndpointHandler<io.evitadb.externalApi.graphql.io.GraphQLSchemaEndpointExecutionContext>
    • getSupportedResponseContentTypes

      @Nonnull public LinkedHashSet<String> getSupportedResponseContentTypes()
      Overrides:
      getSupportedResponseContentTypes in class io.evitadb.externalApi.http.EndpointHandler<io.evitadb.externalApi.graphql.io.GraphQLSchemaEndpointExecutionContext>
    • writeResponse

      protected void writeResponse(@Nonnull io.evitadb.externalApi.graphql.io.GraphQLSchemaEndpointExecutionContext executionContext, @Nonnull com.linecorp.armeria.common.HttpResponseWriter responseWriter, @Nonnull Object response, @Nonnull io.netty.channel.EventLoop eventExecutors)
      Overrides:
      writeResponse in class io.evitadb.externalApi.http.EndpointHandler<io.evitadb.externalApi.graphql.io.GraphQLSchemaEndpointExecutionContext>