private void register(final ApiDO apiDO) {
        //register selector/rule/metadata if necessary
        final ApiDocRegisterDTO.ApiExt ext = GsonUtils.getInstance().fromJson(apiDO.getExt(), ApiDocRegisterDTO.ApiExt.class);
        RegisterClientServerDisruptorPublisher publisher = RegisterClientServerDisruptorPublisher.getInstance();
        final String contextPath = apiDO.getContextPath();
        final String path = apiDO.getApiPath();
        final String appName = contextPath.substring(1);
        final String host = ext.getHost();
        final Integer port = ext.getPort();
        publisher.publish(MetaDataRegisterDTO.builder()
                .addPrefixed(ext.isAddPrefixed())
                .appName(appName)
                .serviceName(ext.getServiceName())
                .methodName(ext.getMethodName())
                .contextPath(contextPath)
                .host(host)
                .port(port)
                .path(path)
                .ruleName(path)
                .pathDesc(apiDO.getApiDesc())
                .parameterTypes(ext.getParameterTypes())
                .rpcExt(ext.getRpcExt())
                .rpcType(apiDO.getRpcType())
                .enabled(true)
                .build());
    }
create.

@param apiDTO apiDTO
@return create message
shenyu-admin/src/main/java/org/apache/shenyu/admin/service/impl/ApiServiceImpl.java