api restful_行为驱动的RESTful API

api restful

RESTBucks示例中, 作者提供了一个有用的状态图,该状态图描述了客户端可以针对该服务执行的操作。

这样的应用程序状态图从何而来? 好吧,当然是从需求中得出的。

因为我喜欢使用示例指定需求 ,所以让我们看看如何从BDD风格的需求中得出应用程序状态图。

示例:RESTBucks状态图

以下是订购饮料故事的三种情况:

Scenario: Order a drink

Given the RESTBucks service
When I create an order for a large, semi milk latte for takeaway
Then the order is created
When I pay the order using credit card xxx1234
Then I receive a receipt
And the order is paid
When I wait until the order is ready
And I take the order
Then the order is completed

Scenario: Change an order

Given the RESTBucks service
When I create an order for a large, semi milk latte for takeaway
Then the order is created
And the size is large
When I change the order to a small size
Then the order is created
And the size is small

Scenario: Cancel an order

Given the RESTBucks service
When I create an order for a large, semi milk latte for takeaway
Then the order is created
When I cancel the order
Then the order is canceled

让我们从快乐路径场景开始更详细地研究这一点。

Given the RESTBucks service
When I create an order for a large, semi milk latte for takeaway

第一行告诉我在给定的广告牌URL处有一个REST服务。 第二行告诉我可以在该URI上使用POST方法来创建具有给定属性的Order资源。

bdd-rest-1

Then the order is created

这告诉我POST返回201以及创建的Order资源的位置。

When I pay the order using credit card xxx1234

这告诉我有一个pay操作(链接关系)。

bdd-rest-2

Then I receive a receipt

这告诉我, pay操作的响应包含回执资源的表示形式。

bdd-rest-3

And the order is paid

这告诉我从回执资源到订购资源之间存在链接。 它还告诉我订单现在处于已paid状态。

bdd-rest-4

When I wait until the order is ready

这告诉我可以使用GET刷新Order,直到其他进程将其状态更改为ready为止。

bdd-rest-5

And I take the order

这告诉我有一个take措施(链接关系)。

bdd-rest-6

Then the order is completed

这告诉我订单现在处于completed状态。

bdd-rest-7


以类似的方式分析其他两种情况,我们得到的状态图与RESTBucks示例中的原始状态图非常相似。
bdd-rest-8 唯一的不同是,此图在此处包含从收据导航至订单的其他操作。 本书中也对这种导航进行了描述,但本书的图中未显示。

使用BDD技术开发RESTful API

使用BDD方案,很容易发现应用程序状态图。 这不足为奇,因为BDD场景的Given/When/Then语法只是描述状态和状态转换的另一种方式。

从应用程序状态图中,这只是完成完整资源模型的一小步。 实施资源模型后,您可以重新使用BDD方案来自动验证实施是否符合要求。

总之,在开发RESTful API时,BDD技术可以为我们提供很多帮助。

翻译自: https://www.javacodegeeks.com/2014/07/behavior-driven-restful-apis.html

api restful

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值