转换器API的REST端点命名约定

时间:2018-02-08 18:17:36

标签: rest naming-conventions endpoint

我正在实现一个REST端点,将 banana 转换为 orange ,还将 orange 转换为 banana

端点的正确命名是什么?

/conversions/banana/orange
/conversions/orange/banana


/conversions/banana2orange
/conversions/orange2banana


/conversions/bananatoorange
/conversions/orangetobanana

还是别的什么呢?

1 个答案:

答案 0 :(得分:1)

在我看来,REST是关于资源的。在这种情况下,资源是香蕉和橘子。如果您假设您可以通过id检索香蕉或橙色,那么您的端点将是:

  1. /oranges/{id}
  2. /bananas/{id}
  3. 所以我不会创建一个/conversions端点,但我会使用这样的东西:

    1. /oranges/frombanana/oranges/from_banana
    2. /bananas/fromorange/bananas/from_orange
    3. 无论如何,我并不认为有一个非常完善的命名约定,所以我不会发现上面提出的任何端点都很奇怪。无论如何,我发现前两个并不是很明显; /conversions/orange/banana做了什么?它会将橙色转换为香蕉还是将橙色转换为香蕉?也许像/conversions/banana/to/orange这样的东西会更加不言自明。

      仅供参考,这里是一些云存储服务的API:

      1. Dropbox API:https://www.dropbox.com/developers/documentation/http/documentation
      2. Box API:https://developer.box.com/reference
      3. 或PayPal:https://developer.paypal.com/docs/api/balance-accounts/