65.9K
CodeProject 正在变化。 阅读更多。
Home

另一个用于轻松测试 REST 方法的通用工具

starIconstarIconstarIconstarIconstarIcon

5.00/5 (1投票)

2014 年 2 月 14 日

CPOL

3分钟阅读

viewsIcon

14818

downloadIcon

318

轻松测试不包含路由属性中参数的 REST 方法。

另一半的生活方式

我写了一篇文章这里,题为“使用通用实用工具轻松测试 REST 方法”,只要您将通过 URI 传递的参数合并到服务器的路由属性中,就可以轻松测试 REST 方法。

换句话说,使用这样的控制器方法路由属性

[Route("api/DeliveryItems/{serialNum}/{ID:int}/{CountToFetch:int}")]

...客户端使用类似这样的 URI 访问以这种方式注释的方法

http://<serverName>:<portNum>/api/<ControllerName>/<serialNumVal>/<IDVal>/<CountToFetchVal>

或者对于一个字面/具体的例子

https://:28642/api/deliveries/dplatypus/1/42

这工作正常,并且具有使服务器上的路由属性自我文档化的优点。 但是,它确实将路径/路由信息(“http://<serverName>:<portNum>/api/<ControllerName>”部分)与要传递给该方法的参数(“<serialNumVal>/<IDVal>/<CountToFetchVal>”部分)混合在一起。

因此,我创建了一个新的实用工具,该工具允许测试具有如下路由属性的方法

[Route("api/DeliveryItems")]

方法本身保持不变

public IEnumerable<deliveryitem> GetRangeOfDeliveryItemsByStartingID(string serialNum, int ID, int CountToFetch)
{
    return _deliveryItemRepository.GetRange(string serialNum, ID, CountToFetch);
}

...但现在它以这种方式被客户端调用

http://<serverName>:<portNum>/api/<ControllerName>/[<Differentiator>]/?

<arg1Name>=<arg1Val>&<arg2Name>=<arg2Val> (etc.)

一个字面例子是

https://:28642/api/deliveries?serialNum=dplatypus&ID=1&CountToFetch=42

-或者,如果存在一个“区分符”(克服任何可能歧义的方法名称)

https://:28642/api/deliveries/getThemThangs?serialNum=dplatypus&ID=1&CountToFetch=42

该实用工具的使用

要使用新的 Web API REST 测试器实用工具,首先需要保存到文件或以这种格式添加到“选择 URI 字符串”组合框条目中

  • deliveries/Count
  • deliveries/GetAll
  • deliveries?ID={0}
  • deliveries?ID={0}&CountToFetch={1}
  • departments?serialNum={0}&ID={1}&CountToFetch={2}
  • InventoryItems?serialNum={0}&ID={1}&CountToFetch={2}&packSize={3}
  • InventoryItems/GetDeptRange?serialNum={0}&BeginDept={1}&EndDept={2}

换句话说,控制器名称,后跟区分符(如果有)(例如“Count”或“GetAll”),后跟第一个参数的问号,参数名称,等号和“{0}”。 对于后续参数,与号替换问号,并且大括号内的数字会递增。 该实用工具会将这些“大括号三明治数字”替换为您稍后添加的值。

然后,按照以下步骤操作(步骤编号对应于您在表单上看到的内容)

0) 在“输入基本 URI”文本框中输入“基本 uri”。 这类似于“https://:28642/api/”

1) 如果您将这些值保存到文本文件中,则可以通过“从文件加载 URI 字符串”按钮加载它。

2) 从组合框中选择一个值。

3) 点击“3) 发现 URI 字符串参数”按钮。 这将显示相应的标签和文本框,您可以在其中输入要用于每个参数的值。

4) 输入每个已发现的参数的值

5) 点击“5) (重新)构建 URI”按钮。 它将构建要传递给服务器的 URI,用您在文本框中输入的值替换占位符值,并在“5) (重新)构建 URI”按钮右侧的文本框中显示该 URI

6) 随着服务器的运行,作为最后一击,点击“6) 测试 URI”按钮。 如果您的代码是正确的,并且两极没有突然反转,并且没有巨大的电磁风暴,您将在下面的DataGridView中看到结果。

注意:较大的文件是从 Visual Studio 通过“文件”>“导出模板...”保存的整个项目。较小的文件是文本文件中的源代码。

微妙的暗示,柔软的双手和想要的薄荷糖

如果您喜欢这篇文章,请注意我在蒂芙尼注册了(我甚至在那里吃过早餐!),而且我一直想“闪耀”,最好是红宝石、钻石、蓝宝石和青金石,更不用说大量的立方氧化锆了。 只是说说而已

© . All rights reserved.