重构了代码，将public API放入api.go文件，并添加注释