c# - 如何使用字典作为 api 的数据?
问题描述
我有一个创建的字典,看起来像这样
var projects = new Dictionary<string, string>
{ {"7000316139.13.01", "Project 1" },
... (all the records in the dictionary are sequential from here)
}
我有一个看起来像这样的 get 函数
public IActionResult GetProjectByProjectCode(string projectCode)
{
try
{
var project = _repository.Project.GetProjectByProjectCode(projectCode);
if (project == null)
{
_logger.LogError($"Project with project code {projectCode}, has not been found in db.");
return NotFound();
}
else
{
_logger.LogInfo($"Returned project with project code {projectCode}");
var projectResult = _mapper.Map<ProjectDto>(project);
return Ok(projectResult);
}
}
catch (Exception ex)
{
_logger.LogError($"Something went wrong inside GetProjectByProjectCode action: {ex.Message}");
return StatusCode(500, "Internal server error");
}
}
我需要的是访问 Dictionary 作为 get 方法的数据源。
我曾尝试将字典直接放入 get 方法中,但失败了。
我希望看到的结果如下: 7000316139.13.01 项目1
这是存储库代码
public Project GetProjectByProjectCode(string projectCode)
{
return FindByCondition(project => project.ProjectCode.Equals(projectCode))
.FirstOrDefault();
}
希望这会有帮助
解决方案
您可能想要添加 _repository.Project.GetProjectByProjectCode 方法的另一个“模拟”实现,也许重新实现包含该方法的整个类。该实现应该从内联字典而不是数据库中获取值。然后,当您处于“测试模式”时添加一些机制以使用替代实现,否则使用标准实现。
除此之外,我建议您阅读一些有关单元测试范式和相关工具和技术的内容。
推荐阅读
- haskell - 使用 Haskell 获取从绝对文件路径到另一个文件的相对路径
- python - 尝试/排除 ...AttributeError:只能将 .str 访问器与字符串值一起使用
- python - PubSub + GCF 不可靠?
- java - 迭代两个列表并从第一个列表中设置元素
- javascript - 为什么常见网站的 HTML/CSS/Javascript 代码如此复杂?
- python - 尝试在 django 中测试 re_path 正则表达式
- python - 将源数据从 Numpy 数组转换为列表的最 Pythonic 方式
- html - 如何将 cardElement 传递给 createPaymentMethod(cardElement, customerId, priceId) React+Stripe?
- sql - 提取字符串中两个字符之间的字符串
- r - 在使用管道运算符的函数中抑制括号