private <T extends ResourceDTO> SearchedResources<T> search(final String uri, final int pageNum, final int pageSize,
                                                                final QueryCondition condition, final TypeReference<SearchedResources<T>> valueType) {
        SearchCondition searchCondition = SearchCondition.builder()
                .pageNum(pageNum)
                .pageSize(pageSize)
                .condition(condition)
                .build();

        HttpEntity<SearchCondition> entity = new HttpEntity<>(searchCondition, basicAuth);
        ResponseEntity<ShenYuResult> response = template.postForEntity(baseURL + uri, entity, ShenYuResult.class);
        ShenYuResult rst = assertAndGet(response, "query success");

        return Assertions.assertDoesNotThrow(() -> mapper.readValue(
            rst.getData().traverse(), valueType),
            "checking cast to SearchedResources<T>"
        );
    }
Fetch the rules by the given conditions.

@param keyword   expected selectors included the word. return all if absent.
@param selectors expected selectors under specified plugins. return all if absent.
@return paginated info with list of {@link RuleDTO}s
shenyu-e2e/shenyu-e2e-client/src/main/java/org/apache/shenyu/e2e/client/admin/AdminClient.java