我们正在创建一项服务来执行从一种格式到另一种格式的转换。转换的示例是货币、距离、时间、语言等。在我们的例子中,它是地理点(例如从十进制度的纬度/经度到度-分-秒的纬度/经度)。
通常,RESTful 资源具有类似的 OO 概念,该概念在服务器端持久化,可以进行 CRUD(我知道这只是使某些东西成为 RESTful 的一部分),但对于转换事物的简单服务,这并不必然存在。如何让这个 RESTful 实现?目前我们有一些这样的:
要获取支持的格式列表,可以这样做:
GET /coordinates/formats
这将返回格式列表,包括例如 DD 和 DMS(十进制度和度-分-秒)。
然后可以转身并执行如下转换:
POST /coordinates/DD/as/DMS
在此示例中,将在请求正文中传递十进制度的表示(如 JSON 或其他格式),并在响应正文中接收度-分-秒的表示。
这当然有效,但感觉不太稳定,特别是因为相同的 URI 被一遍又一遍地用于不同的输入(不同的十进制度)。诀窍可能是真正专注于操纵它的资源。也许它是一个“转换”:
POST /coordinate/conversions
正文可能会接受 a 值、其格式和所需的输出。但是,所有资源的 URI 仍然相同...
想法?