API
RESTful API
提供 API 是常见的后端服务。其中RESTful API又是最为简单常见的。RESTful API使用标准的HTTP方法(如GET、POST、PUT、DELETE)进行CRUD操作。请求的参数通常通过JSON格式传输。
编写RESTful API服务本身是非常简单的,不过编写API文档倒是挺麻烦的工作,尤其是万一API经常变动,如何保证文档和代码的一致性?这种自动化的工作自然有自动化的方法,例如OpenAPI。Rust与OpenAPI集成方案有utoipa,他可以通过宏来对外部接口进行注释,进而自动生成 API Doc,可以直接在代码中暴露API Doc给用户。这个库目前还不是很成熟,文档也比较混乱。
提高API性能的5个常用技巧
- 分页:当结果集较大的时候,可以将结果分页返回。
- 异步日志:同步日志记录每次调用都要处理磁盘,可能会减慢系统速度。异步日志记录会先将日志发送到无锁缓冲区,然后立即返回。日志将定期刷新到磁盘上。这可以显著减少I/O开销。
- 缓存:我们可以将经常访问的数据缓存起来。客户端可以首先查询缓存,而不是直接访问数据库。如果缓存未命中,客户端可以从数据库中查询。像Redis这样的缓存将数据存储在内存中,因此数据访问速度比数据库快得多。
- 负载压缩:可以使用gzip等方式压缩请求和响应,以使传输的数据大小更小。这可以加快上传和下载速度。
- 连接池:在访问资源时,我们通常需要从数据库中加载数据。打开和关闭数据库连接会增加很大的开销。因此,我们应该通过一组打开的连接连接到数据库。连接池负责管理连接的生命周期。