public static void crud(@NotNull String path, @NotNull CrudHandler crudHandler, @NotNull Set<Role> permittedRoles) {
        path = path.startsWith("/") ? path : "/" + path;
        if (path.startsWith("/:")) {
            throw new IllegalArgumentException("CrudHandler requires a resource base at the beginning of the provided path e.g. '/users/:user-id'");
        }
        if (!path.contains("/:") || path.lastIndexOf("/") > path.lastIndexOf("/:")) {
            throw new IllegalArgumentException("CrudHandler requires a path-parameter at the end of the provided path e.g. '/users/:user-id'");
        }
        String SEPARATOR = "/:";
        String resourceBase = path.substring(0, path.lastIndexOf(SEPARATOR));
        String resourceId = path.substring(path.lastIndexOf(SEPARATOR) + SEPARATOR.length());
        staticInstance().get(prefixPath(path), ctx -> crudHandler.getOne(ctx, ctx.pathParam(resourceId)), permittedRoles);
        staticInstance().get(prefixPath(resourceBase), crudHandler::getAll, permittedRoles);
        staticInstance().post(prefixPath(resourceBase), crudHandler::create, permittedRoles);
        staticInstance().patch(prefixPath(path), ctx -> crudHandler.update(ctx, ctx.pathParam(resourceId)), permittedRoles);
        staticInstance().delete(prefixPath(path), ctx -> crudHandler.delete(ctx, ctx.pathParam(resourceId)), permittedRoles);
    }
public static void crud ( @ NotNull String path , @ NotNull CrudHandler crudHandler , @ NotNull Set < Role > permittedRoles ) { path = path . startsWith ( "/" ) ? path : "/" + path ; if ( path . startsWith ( "/:" ) ) { throw new IllegalArgumentException ( "CrudHandler requires a resource base at the beginning of the provided path e.g. '/users/:user-id'" ) ; } if ( ! path . contains ( "/:" ) || path . lastIndexOf ( "/" ) > path . lastIndexOf ( "/:" ) ) { throw new IllegalArgumentException ( "CrudHandler requires a path-parameter at the end of the provided path e.g. '/users/:user-id'" ) ; } String SEPARATOR = "/:" ; String resourceBase = path . substring ( 0 , path . lastIndexOf ( SEPARATOR ) ) ; String resourceId = path . substring ( path . lastIndexOf ( SEPARATOR ) + SEPARATOR . length ( ) ) ; staticInstance ( ) . get ( prefixPath ( path ) , ctx -> crudHandler . getOne ( ctx , ctx . pathParam ( resourceId ) ) , permittedRoles ) ; staticInstance ( ) . get ( prefixPath ( resourceBase ) , crudHandler :: getAll , permittedRoles ) ; staticInstance ( ) . post ( prefixPath ( resourceBase ) , crudHandler :: create , permittedRoles ) ; staticInstance ( ) . patch ( prefixPath ( path ) , ctx -> crudHandler . update ( ctx , ctx . pathParam ( resourceId ) ) , permittedRoles ) ; staticInstance ( ) . delete ( prefixPath ( path ) , ctx -> crudHandler . delete ( ctx , ctx . pathParam ( resourceId ) ) , permittedRoles ) ; }
Adds a CrudHandler handler to the specified path with the given roles to the instance.

@see CrudHandler