如何测试apiController

时间:2018-01-05 05:24:21

标签: c# api asp.net-apicontroller

我在VS 2013中处理现有的Windows服务项目。

我已经添加了一个web API Controller类,我现在无法记住,如果它是一个(v2.1)或(v1)控制器类....无论如何我称之为SynchroniseFromAwsService < / p>

我试图从AWS lambda调用中调用它,但它告诉我我没有访问权限。所以我需要在本地进行测试,看看它是否正在尝试和诊断问题。

我想在本地测试这个,但我不确定该怎么做..请看代码...

 namespace Workflow
{
    public class SynchroniseFromAwsService: ApiController
    {
        //// POST api/<controller>
        public string SapCall([FromBody]string xmlFile)
        {
            string responseMsg = "Failed Import User";

            if (!IsNewestVersionOfXMLFile(xmlFile))
            {
                responseMsg = "Not latest version of file, update not performed";
            }
            else
            {
                Business.PersonnelReplicate personnelReplicate = BusinessLogic.SynchronisePersonnel.BuildFromDataContractXml<Business.PersonnelReplicate>(xmlFile);
                bool result = Service.Personnel.SynchroniseCache(personnelReplicate);

                if (result)
                {
                    responseMsg = "Success Import Sap Cache User";
                }
            }

            return "{\"response\" : \" " + responseMsg + " \" , \"isNewActiveDirectoryUser\" : \" false \"}";
        }
}
}

我已经在谷歌上阅读下载名为Postman的程序并对其进行测试。

我可以在VS中调用任何内容,只传入一个包含xml文件的虚拟数据字符串进行测试吗?

什么是最好的方式

感谢您的回复

2 个答案:

答案 0 :(得分:2)

你可以使用

  

RestSharp   用于.NET的简单REST和HTTP API客户端

访问http://restsharp.org/了解详情。

使用nuget包管理器在项目中安装此依赖项

Install-Package RestSharp -Version 106.2.0

答案 1 :(得分:2)

你的代码是对的。你需要在本地测试它。您可以使用Postman rest客户端本身完成它。这很简单 在您的代码中,您的函数 SapCall 缺少 HTTP 方法属性。因此,请指定用于识别请求类型的方法的属性。

[HttpPost]
public string SapCall([FromBody]string xmlFile){

现在使用postman rest客户端并调用你的url url。它将成功执行。