c# - 我应该在我的 API 上公开接口(interface)而不是具体对象吗?

标签 c# rest

我正在开发一个 API,我的一个队友坚持认为返回接口(interface)比将具体对象返回给最终用户更好。

问题是随着API编码的进行,接口(interface)的可维护性越来越麻烦,如果我们需要在接口(interface)的方法中添加类似参数的东西,那么我们需要先在接口(interface)中添加它,然后再在从该接口(interface)继承的所有其他类上添加该方法。

这让我们怀疑拥有这些接口(interface)的好处与它们的可维护性相比,是否真的有充分的理由在 API 上仅公开接口(interface)?

最佳答案

“在 API 上只公开接口(interface)真的有充分的理由吗?”

当然!可测试性!为您,也为您的消费者。他们可以模拟您的 API 以返回实现您的接口(interface)的模拟并测试他们的代码,而无需运行您的 API。

它还为您的实现提供了更大的灵 active 。通过让您的具体类远离公众视线,您可以自由地逐次更改您实际返回的内容以满足接口(interface)请求。

关于c# - 我应该在我的 API 上公开接口(interface)而不是具体对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29103623/

相关文章:

java - 未找到 JAX-RS 的处理程序方法

C# 具有不同方法的相同命名类

c# - 何时应指定 CurrentCulture 或 InvariantCulture 以及何时应不指定?

c# - 向用户发送电子邮件

java - 什么是@javax.ws.rs.core.Context

node.js - Jasper Rest API,运行报告

java - 是否可以在@RequestParam中有条件地赋值Required?

c# - lambda 表达式中的变量如何赋值

c# - 如果用 || 我怎么写这个, && 更短?

php - 如何从 PHP 调用 RESTful WCF 服务