如何测试apiController

问题描述 投票:1回答:2

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

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

我试图从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文件的虚拟数据字符串进行测试?

什么是最好的方式

谢谢你的回复

c# api asp.net-apicontroller
2个回答
2
投票

您可以使用

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

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

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

Install-Package RestSharp -Version 106.2.0

2
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.