欧元↔美元互转REST API端点命名规范合规性咨询
符合REST规范的货币转换端点命名方案
首先明确REST的核心原则:端点应该指向资源而非动作,所以你提到的两个选项都有明显问题:
convert-euro-dollar:用动词convert违背了REST资源导向的核心逻辑,而且命名仅限定欧元转美元的单向场景,完全不符合你双向转换的需求。euro-dollar:语义过于狭窄,只能体现欧元与美元的单向关联,无法覆盖美元转欧元的情况,扩展性极差。
推荐的命名方案
最符合规范的是采用资源型命名,把货币转换结果作为一种资源,推荐以下两种:
/currency-conversions(优先推荐)
这个命名清晰体现了“货币转换结果”这一资源,复数形式符合REST对资源集合的命名习惯。你可以通过请求参数或请求体指定转换方向和金额:- GET请求示例(幂等查询场景):
GET /currency-conversions?from=EUR&to=USD&amount=50 - POST请求示例(适合需传递更多参数或非幂等场景):
{ "from": "USD", "to": "EUR", "amount": 100 }
- GET请求示例(幂等查询场景):
/exchange-rates/calculate(备选)
如果你的服务核心是基于实时汇率做计算,这个命名也能被理解,但calculate带有轻微动作属性,优先级低于纯资源型命名。
额外最佳实践提示
- 使用标准ISO货币代码(如EUR、USD)代替全称,符合行业通用规范;
- 资源型命名的扩展性更强,后续支持英镑、日元等更多货币对时无需修改端点;
- 幂等转换查询用GET,涉及日志记录或非幂等逻辑用POST。
内容的提问来源于stack exchange,提问作者Platus
相关产品推荐
相关产品推荐

