API/系统设计方法



我在";设计优步api模拟面试"。

对于大多数API;userId";并留在系统上以解决";rideId";

Example - cancelRide(userId: string)

对于这个api,用户只是将userId传递给cancelRide端点,现在系统必须解析rideId才能真正取消骑行。

现在,这可能会解决手头的问题,但未来优步可能希望为单个用户提供多次乘车服务(你也可以同时为自己和妈妈预订乘车服务(

现在有了这种API设计,我们将不得不对cancelRide端点进行更改,以接受rideId和

cancelRide(userId: string, rideId: string)

如果有新的需求,我们是否应该根据当前的问题进行设计,并对API/设计进行更改,或者我们至少应该考虑一些明显/可能的未来需求/更改?

您应该提前思考:他们未来需要什么样的潜在需求/更改?

原因是您正在开发API

假设您的API有超过10万个外部客户端,任何更改都将强制它们更新、修改、重建其APP和大量工作。

因此,YAGNI原则不适用于API设计问题。你应该试试开闭原理(OCP(。

最新更新