在上一篇文章中,我们通过两个问题(做什么?和怎么做?),分析出用户使用软件的目的和 API 要达成的目标,获得了初步的设计成果。本文将继续完善我们的 API 设计方案,探究 API 的输入和输出。
输入和输出
API 在达成目标时,可能需要用户提供必要的信息。例如,你要查看的自行车。API 在完成工作后,应该返回用户需要的信息,例如,一辆自行车的详细描述,车子的高清图片或者骑行视频展示等。
通过下面两个问题,对 API 的输入和输出进行分析:
- API 需要什么?
- API 返回什么?
添加商品到购物车
用户在把自行车
添加到购物车
时,需要什么才能完成这一目标呢?很显然,我们需要告诉 API,要添加的物品:自行车,以及要添加到哪里:购物车。
添加完成后,用户希望得到什么呢?你可能会想,需要一个成功的消息。这里我们暂且不考虑这些一般性的信息,每一个 API 都会返回类似的信息,在这里,我们更多关注业务相关的内容。在添加成功后,不需要返回更多信息。
结算购物车中商品
用户在结算购物车产品时,需要什么才能完成这一目标呢?购物车
,要结算的商品也已经在购物车里了。用户需要得到什么呢?用户当然需要得到一份合同,也就是订单
。
成果
继续完善我们的设计成果。
小结
我们通过两个问题:需要什么?
和得到什么?
,进一步找出 API 在达成目标时,需要的输入和输出。
在线上购物这个较为熟悉的场景中,会比较容易的找到问题的答案。如果在更为复杂的场景,问题并不容易回答,你可能担心出现遗漏的情况。
有这种担心非常好,可以促使对问题进行全面和深入的思考。即使出现遗漏,也没有关系。随着开发的深入,我们对业务也会更加熟悉;而且每个 API 都不是 是孤立的,在设计其他 API 时,也会引发我们对已经开发完成的 API 的回顾。所有这些都会帮助我们查漏补缺,逐步完善 API.
记住:API 的设计不是一次性的工作,在整个 API 的生命周期,不断迭代更新。