c# - 如何测试 apiController

标签 c# api asp.net-apicontroller

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

我添加了一个 Web API Controller 类,我现在不记得它是 (v2.1) 还是 (v1) Controller 类....无论如何我都称它为 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 文件的虚拟数据字符串?

最好的方法是什么

谢谢你的回复

最佳答案

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

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

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

关于c# - 如何测试 apiController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48107646/

相关文章:

c# - ASP.NET Core API 中的常规路由

c# - CLR内部调用用什么语言编写?

c# - 如何从包含通配符的路径中提取目录?

c# - 将字符串拆分为两部分

c# - 为什么我只能调用一次 GetResponseStream()

R - POST 的 JSON 结构

javascript - Google Maps JavaScript API - 从捕捉到道路的折线创建多边形

javascript - 如何使用 nock.js 通过 GET 请求添加参数

c# - 有没有办法在 Api Controller 中获取当前用户

c# - 在 api Controller 初始化之前设置参数