# svr-api

svr-api目录用于定义后端脚本的API说明、模版、示例等：

1. 后端脚本的api文档。如[svr-api/http.d.ts](./http.d.ts)，这类文档会在打包时被压缩到一个文件并在前端编译脚本时发送给monacoeditor，具体见：《脚本编辑器实现思路.md》
2. 后端脚本模版用于用户开始进入脚本编辑器时的初始化内容，如[dev/svr-script-examples/etl/script-node-template.ts](../dev/svr-script-examples/etl/script-node-template.ts)。
3. 后端脚本示例用于最后打包到产品文档中，如[dev/svr-script-examples/etl/script-node-example-transform-locations.ts](../dev/svr-script-examples/etl/script-node-example-transform-locations.ts)。

## 为什么存在svr-api目录

最开始后端脚本是定义在独立的一个项目中的（server-script-dev项目），后来才迁移到svr-api的，原因是：

1. 我们需要有一个地方能编写后端脚本的API说明、模版、示例等，ts是最好不过的语言了。
2. 以前独立放一个项目，是因为当时把后端脚本定义放到和前端一起有一些编译错误，当时没有办法解决，主要是一些数据类型冲突，而现在我们把后端和前端需要公用的数据类型都放到了`web/static-file/types`目录下，意义不同的类型尽量使用不一样的名称，这样就没有冲突了。
3. 把后端脚本和前端脚本放一起，也方便开发，因为脚本api结构的变化往往是和产品代码一起的，需要研发工程师维护，一个仓库更好管理些，有错误也好发现和修改。
4. svr-api目录中的很多内容可以直接作为文档素材，可以在以后文档打包过程中进行处理。
