转换、计算的 RESTful 设计

Sod*_*aan 3 rest restful-url restful-architecture

如何设计操作,例如:

  • 计算
  • 转变
  • 翻译

例如:从“EUR”转换为“CNY”金额“100”。

这是/convert?from=EUR&to=CNY&amount=100RESTful 吗?

小智 5

什么都没有

/convert?from=EUR&to=CNY&amount=100
Run Code Online (Sandbox Code Playgroud)

不是RESTful。您可以说这标识了一个 REST 资源。

但它看起来像 HTTP 上的 RPC(远程过程调用),在不像货币转换那么简单的情况下,会导致系统不是 RESTful。

总是问自己:我的资源是什么?

一个答案可能是: Resource 是转换结果,由两种货币和金额标识。如果你使用它,它看起来会更 RESTful

/conversion?from=EUR&to=CNY&amount=100
Run Code Online (Sandbox Code Playgroud)

请注意,路径是名词 ( conversion),而不是动词 ( convert)。一般来说,如果您可以用名词命名 REST 资源,那么您就走对了。

如果您将识别位放入查询参数 ( ?from=EUR&to=CNY&amount=100) 或路径中,这是一个品味问题。你可以用

/conversion/EUR/100/CNY
Run Code Online (Sandbox Code Playgroud)

使用三个路径参数:

/conversion/{FROM}/{AMOUNT}/{TO}
Run Code Online (Sandbox Code Playgroud)