首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >客户端应该静默地修复可能的错误,还是应该让客户端的用户知道错误?

客户端应该静默地修复可能的错误,还是应该让客户端的用户知道错误?
EN

Software Engineering用户
提问于 2021-06-14 01:14:50
回答 3查看 177关注 0票数 0

我正在为API构建一个客户端。

API采用类似于此2-10的查询参数,这是一个范围,并注意到它使用了连字符(-)。

通常,数据来自另一个地方,使用en dash (-)而不是hyphen

如果api是使用en dash而不是hyphen调用的,那么它将返回空的,因此在发送请求之前我们需要将en dashes转换为hyphens

我认为处理这件事有两种选择:

  1. 在我正在构建的API客户机上,在对API进行请求之前,我可以获得范围并以静默方式将en dashes替换为hyphens
  2. 如果与en dashes而不是hyphens一起使用,则向客户端抛出一个错误,并让将要使用该客户端的代码处理该问题。

任何关于该走哪条路的建议都是非常感激的。

EN

回答 3

Software Engineering用户

回答已采纳

发布于 2021-06-14 07:58:19

API的用户并不关心数据来自何处;API和用户之间有一个契约。如果API使用不同的服务造成麻烦,则API必须报告错误,或者报告正确的结果。一个无声的不正确的结果是不可接受的,它意味着你的API被破坏了。

现在,从您的描述中,我不太清楚您实际在做什么,您是在创建API还是客户端,以及谁从另一个源获取数据。如果API被破坏了,您要么大声对API创建者大喊大叫来修复它,要么就接受它。但是您应该在客户端代码中有一个方法,其中一个范围是使用一个清晰而简单的规则指定的,该方法将范围转换为彼此调用的方法所需的格式。它可能不是连字符对破折号,它可能是一个完全不同的格式,如“从:2到:10”。一旦编写了方法,它就应该将所有调用者与这些问题隔离开来。

票数 1
EN

Software Engineering用户

发布于 2021-06-14 04:51:28

你的问题缺少重要的细节,其中一些在评论中提到,但要求仍然含糊不清。

例如,当您在“从另一个服务检索范围”中使用被动语态时,您将不清楚是谁做的,另一个服务的API定义是什么,谁可能负责将字符串解释为一个范围。

  • 如果用户检索范围并将其输入API (复制和粘贴?)您有一个严重的可用性问题和错误的来源,但可以说是用户负责修复格式。作为一个用户,我会拒绝使用这样的软件。
  • 如果您的应用程序检索到该范围,则您有责任根据它们的API对其进行解释并在传递到其他API之前对其进行适当的转换。
  • 如果另一个服务API定义说它们的格式范围为连字符,但它们的实现使用的是n-破折号,则需要请求它们修复它们的实现,或者为了互操作性的考虑,您需要接受不正确的格式。在API客户端中有许多这样做的例子。
票数 3
EN

Software Engineering用户

发布于 2021-06-14 04:23:03

你真的可以为客户做你想做的任何事情,但是如果客户端自动替换了破折号,它就会更健壮,更容易使用。

票数 -1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/429310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档