[feat] add request function