public static void checkParam(String dataId, String group, String datumId, String content) throws NacosException {
        if (StringUtils.isBlank(dataId) || !isValid(dataId.trim())) {
            throw new NacosApiException(HttpStatus.BAD_REQUEST.value(), ErrorCode.PARAMETER_VALIDATE_ERROR,
                    "invalid dataId : " + dataId);
        } else if (StringUtils.isBlank(group) || !isValid(group)) {
            throw new NacosApiException(HttpStatus.BAD_REQUEST.value(), ErrorCode.PARAMETER_VALIDATE_ERROR,
                    "invalid group : " + group);
        } else if (StringUtils.isBlank(datumId) || !isValid(datumId)) {
            throw new NacosApiException(HttpStatus.BAD_REQUEST.value(), ErrorCode.PARAMETER_VALIDATE_ERROR,
                    "invalid datumId : " + datumId);
        } else if (StringUtils.isBlank(content)) {
            throw new NacosApiException(HttpStatus.BAD_REQUEST.value(), ErrorCode.PARAMETER_VALIDATE_ERROR,
                    "content is blank : " + content);
        } else if (content.length() > PropertyUtil.getMaxContent()) {
            throw new NacosApiException(HttpStatus.BAD_REQUEST.value(), ErrorCode.PARAMETER_VALIDATE_ERROR,
                    "invalid content, over " + PropertyUtil.getMaxContent());
        }
    }
@Test
    void testCheckParamV3() {
        //tag size over 5
        Map<String, Object> configAdvanceInfo = new HashMap<>();
        configAdvanceInfo.put("config_tags", "test,test,test,test,test,test");
        try {
            ParamUtils.checkParam(configAdvanceInfo);
            fail();
        } catch (NacosException e) {
            System.out.println(e.toString());
        }
        //tag length over 5
        configAdvanceInfo.clear();
        StringBuilder tagBuilder = new StringBuilder();
        for (int i = 0; i < 65; i++) {
            tagBuilder.append("t");
        }
        configAdvanceInfo.put("config_tags", tagBuilder.toString());
        try {
            ParamUtils.checkParam(configAdvanceInfo);
            fail();
        } catch (NacosException e) {
            System.out.println(e.toString());
        }
        
        //desc length over 128
        configAdvanceInfo.clear();
        StringBuilder descBuilder = new StringBuilder();
        for (int i = 0; i < 129; i++) {
            descBuilder.append("t");
        }
        configAdvanceInfo.put("desc", descBuilder.toString());
        try {
            ParamUtils.checkParam(configAdvanceInfo);
            fail();
        } catch (NacosException e) {
            System.out.println(e.toString());
        }
        
        //use length over 32
        configAdvanceInfo.clear();
        StringBuilder useBuilder = new StringBuilder();
        for (int i = 0; i < 33; i++) {
            useBuilder.append("t");
        }
        configAdvanceInfo.put("use", useBuilder.toString());
        try {
            ParamUtils.checkParam(configAdvanceInfo);
            fail();
        } catch (NacosException e) {
            System.out.println(e.toString());
        }
        
        //effect length over 32
        configAdvanceInfo.clear();
        StringBuilder effectBuilder = new StringBuilder();
        for (int i = 0; i < 33; i++) {
            effectBuilder.append("t");
        }
        configAdvanceInfo.put("effect", effectBuilder.toString());
        try {
            ParamUtils.checkParam(configAdvanceInfo);
            fail();
        } catch (NacosException e) {
            System.out.println(e.toString());
        }
        
        //type length over 32
        configAdvanceInfo.clear();
        StringBuilder typeBuilder = new StringBuilder();
        for (int i = 0; i < 33; i++) {
            typeBuilder.append("t");
        }
        configAdvanceInfo.put("type", typeBuilder.toString());
        try {
            ParamUtils.checkParam(configAdvanceInfo);
            fail();
        } catch (NacosException e) {
            System.out.println(e.toString());
        }
        
        //schema length over 32768
        configAdvanceInfo.clear();
        StringBuilder schemaBuilder = new StringBuilder();
        for (int i = 0; i < 32769; i++) {
            schemaBuilder.append("t");
        }
        configAdvanceInfo.put("schema", schemaBuilder.toString());
        try {
            ParamUtils.checkParam(configAdvanceInfo);
            fail();
        } catch (NacosException e) {
            System.out.println(e.toString());
        }
        
        //invalid param
        configAdvanceInfo.clear();
        configAdvanceInfo.put("test", "test");
        try {
            ParamUtils.checkParam(configAdvanceInfo);
            fail();
        } catch (NacosException e) {
            System.out.println(e.toString());
        }
    }