对asp.net web api进行休息调用

时间:2014-05-21 02:24:06

标签: c# rest asp.net-web-api

我目前正在按照本教程使用Web Api创建一个简单的REST服务。请注意,这是我第一次做这样的事情,我只是想了解更多。

http://www.asp.net/web-api/overview/creating-web-apis/creating-a-web-api-that-supports-crud-operations

我已按照所有说明操作,并在我的localhost上成功运行。我知道在本教程中,我所有GET请求的URI类似于:

localhostapi /产品/ ID

我理解这一点,以及如何在URI中执行简单的GET请求,并在浏览器中使用我的开发人员工具查看它实际发生的情况。

现在我的问题是...... 如何制作POST / DELETE / PUT请求并实际看到他们在做什么?指南不太清楚,我是否将参数传入URI?当我想要除GET请求之外的任何东西时,URI是否会改变?这里的这篇文章似乎解释了它,但我不明白:

  • 该方法采用Product类型的参数。在Web API中,具有复杂类型的参数从请求主体反序列化。因此,我们希望客户端以XML或JSON格式发送产品对象的序列化表示。

3 个答案:

答案 0 :(得分:1)

发出POST,PUT,DELETE请求非常容易。您只需要在http://www.telerik.com/download/fiddler

安装Fiddler

接下来,安装并运行它。转到右侧的Composer选项卡。接下来,将您的本地主机URL和请求方法以及其他数据(如enter image description here

下面的屏幕截图)放在一起

答案 1 :(得分:1)

您可以编写单元测试,例如

    [TestMethod]
    public void GetAllProducts_ShouldReturnAllProducts()
    {
        var testProducts = GetTestProducts();
        var controller = new SimpleProductController(testProducts);

        var result = controller.GetAllProducts() as List<Product>;
        Assert.AreEqual(testProducts.Count, result.Count);
    }

linkThis one可能会有所帮助。

更多:

How to call ASP .NET MVC WebAPI 2 method properly

Sending C# object to webapi controller

答案 2 :(得分:0)

您可以在控制器方法上设置一个断点来处理post / delete / put。

在您的浏览器中调用post / delete / put(可能是在jquery请求中)的相同内容


您还可以对控制器方法进行单元测试: http://www.asp.net/mvc/tutorials/older-versions/unit-testing/creating-unit-tests-for-asp-net-mvc-applications-cs