我正在为API构建一个客户端。
API采用类似于此2-10
的查询参数,这是一个范围,并注意到它使用了连字符(-)。
通常,数据来自另一个地方,使用en dash
(-)而不是hyphen
。
如果api是使用en dash
而不是hyphen
调用的,那么它将返回空的,因此在发送请求之前我们需要将en dashes
转换为hyphens
。
我认为处理这件事有两种选择:
en dashes
替换为hyphens
。en dashes
而不是hyphens
一起使用,则向客户端抛出一个错误,并让将要使用该客户端的代码处理该问题。任何关于该走哪条路的建议都是非常感激的。
发布于 2021-06-14 07:58:19
API的用户并不关心数据来自何处;API和用户之间有一个契约。如果API使用不同的服务造成麻烦,则API必须报告错误,或者报告正确的结果。一个无声的不正确的结果是不可接受的,它意味着你的API被破坏了。
现在,从您的描述中,我不太清楚您实际在做什么,您是在创建API还是客户端,以及谁从另一个源获取数据。如果API被破坏了,您要么大声对API创建者大喊大叫来修复它,要么就接受它。但是您应该在客户端代码中有一个方法,其中一个范围是使用一个清晰而简单的规则指定的,该方法将范围转换为彼此调用的方法所需的格式。它可能不是连字符对破折号,它可能是一个完全不同的格式,如“从:2到:10”。一旦编写了方法,它就应该将所有调用者与这些问题隔离开来。
发布于 2021-06-14 04:51:28
你的问题缺少重要的细节,其中一些在评论中提到,但要求仍然含糊不清。
例如,当您在“从另一个服务检索范围”中使用被动语态时,您将不清楚是谁做的,另一个服务的API定义是什么,谁可能负责将字符串解释为一个范围。
发布于 2021-06-14 04:23:03
你真的可以为客户做你想做的任何事情,但是如果客户端自动替换了破折号,它就会更健壮,更容易使用。
https://softwareengineering.stackexchange.com/questions/429310
复制相似问题