func RegisterMetaData()

in clients/http_client_factory.go [60:100]


func RegisterMetaData(adminTokenData model.AdminTokenData, metaData *model.MetaDataRegister) (registerResult bool, err error) {

	if metaData.AppName == "" || metaData.Path == "" || metaData.Host == "" || metaData.Port == "" || metaData.NamespaceIds == "" {
		return false, shenyu_error.NewShenYuError(constants.MISS_PARAM_ERROR_CODE, constants.MISS_PARAM_ERROR_MSG, err)
	}

	namespaceIds := strings.Split(metaData.NamespaceIds, ";")

	for _, namespaceId := range namespaceIds {
		if namespaceId == "" {
			continue
		}
		params := map[string]string{}
		params["appName"] = metaData.AppName
		params["path"] = metaData.Path
		params["contextPath"] = metaData.ContextPath
		params["host"] = metaData.Host
		params["port"] = metaData.Port
		params["namespaceId"] = namespaceId

		if metaData.RPCType != "" {
			params["rpcType"] = metaData.RPCType
		} else {
			params["rpcType"] = constants.RPCTYPE_HTTP
		}

		if metaData.RuleName != "" {
			params["ruleName"] = metaData.RuleName
		} else {
			params["ruleName"] = metaData.Path
		}
		headers := adapterHeaders(adminTokenData)
		tokenRequest := initShenYuCommonRequest(headers, params, constants.REGISTER_METADATA, "")

		_, err = http_client.RegisterMetaData(tokenRequest)
		if err != nil {
			return false, err
		}
	}
	return true, nil
}