假设我有一个自定义数据库contacts,其中有两个表:
contacts
- user
- group
一个用户可能属于多个组,而一个组可以有多个用户。如果我将/update/remove用户添加到数据库中,那么也应该更新组(如果用户属于任何一个组)。我应该如何实现REST?目前,我有两个不同的实现:
单端点
构建一个PUT /user端点,并让后端代码在单个端点中完成所有工作。(检查有效性,更新用户,更新与用户相关的所有组)
多端点
构建许多单一用途的端点,并让前端javascript决定如何发送ajax请求。也许:
PUT /user
PUT /group
第一种方法重复许多
我试图优化角度应用的性能。我发现最阻塞的操作是等待API响应TTFB。
来自Chrome网络选项卡的结果:
用curl测试同一端点:
curl -o /dev/null -w "Connect: %{time_connect} TTFB: %{time_starttransfer} Total time: %{time_total} \n" http://api-endpoint.com/api/xyz
% Total % Received % Xferd Average Speed Time Time Time Current