Class AbstractEndpointSpec<INPUT extends AbstractMiddlewareInput,OUTPUT extends AbstractMiddlewareOutputInterface,EXECUTOR extends AbstractMiddlewareExecutor<INPUT,? super OUTPUT>>

java.lang.Object
com.kingsrook.qqq.middleware.javalin.specs.AbstractEndpointSpec<INPUT,OUTPUT,EXECUTOR>
Direct Known Subclasses:
AuthenticationMetaDataSpecV1, ManageSessionSpecV1, MetaDataSpecV1, ProcessInitSpecV1, ProcessMetaDataSpecV1, ProcessStatusSpecV1, ProcessStepSpecV1

public abstract class AbstractEndpointSpec<INPUT extends AbstractMiddlewareInput,OUTPUT extends AbstractMiddlewareOutputInterface,EXECUTOR extends AbstractMiddlewareExecutor<INPUT,? super OUTPUT>> extends Object
Base class for individual endpoint specs. e.g., one path, that has one "spec" (a "Method" in openapi structure), with one implementation (executor + input invalid input: '&' output)
  • Field Details

  • Constructor Details

    • AbstractEndpointSpec

      public AbstractEndpointSpec()
  • Method Details

    • buildInput

      public abstract INPUT buildInput(io.javalin.http.Context context) throws Exception
      build the endpoint's input object from a javalin context
      Throws:
      Exception
    • handleOutput

      public abstract void handleOutput(io.javalin.http.Context context, OUTPUT output) throws Exception
      build the endpoint's http response (written to the javalin context) from an execution output object
      Throws:
      Exception
    • newExecutor

      public EXECUTOR newExecutor()
      Construct a new instance of the executor class, based on type-argument
    • newOutput

      public OUTPUT newOutput()
      Construct a new instance of the output class, based on type-argument
    • defineRoute

      public void defineRoute(String versionBasePath)
      define a javalin route for the spec
    • serveRequest

      public OUTPUT serveRequest(io.javalin.http.Context context) throws Exception
      Throws:
      Exception
    • handleException

      protected void handleException(io.javalin.http.Context context, Exception e)
    • defineMethod

      public Method defineMethod()
    • customizeMethod

      protected void customizeMethod(Method method)
    • defineBasicOperation

      public BasicOperation defineBasicOperation()
    • defineCompleteOperation

      public CompleteOperation defineCompleteOperation()
    • isSecured

      public boolean isSecured()
    • defineBasicSuccessResponse

      public BasicResponse defineBasicSuccessResponse()
    • defineAdditionalBasicResponses

      public List<BasicResponse> defineAdditionalBasicResponses()
    • defineResponses

      public Map<Integer,Response> defineResponses()
    • defineRequestParameters

      public List<Parameter> defineRequestParameters()
    • defineRequestBody

      public RequestBody defineRequestBody()
    • defineComponentSchemas

      public Map<String,Schema> defineComponentSchemas()
    • getRequestParam

      protected String getRequestParam(io.javalin.http.Context context, String name)
    • getRequestParamMap

      protected Map<String,Serializable> getRequestParamMap(io.javalin.http.Context context, String name)
    • getRequestParamInteger

      protected Integer getRequestParamInteger(io.javalin.http.Context context, String name)
    • setQInstance

      public void setQInstance(QInstance qInstance)
      For initial setup when server boots, set the qInstance - but also, e.g., for development, to do a hot-swap.