cache the api reflect.Type