REST API是否应该反映服务器端应用程序体系结构

时间:2015-12-11 04:39:11

标签: api rest web

我正在编写我的第一个网络应用程序。只是想知道REST API设计的约定。是否更好地反映我的服务器端架构或似乎更容易推理的任何东西?

我想到要么:

/serviceProvider/product

/product/serviceProvider

我的服务器端架构全部分为由服务提供商组织的模块,但它们都公开了产品查询API。

2 个答案:

答案 0 :(得分:5)

理想情况下,API应该被设计为对其消费者最有意义。 真的是反映“服务器架构”的理由。事实上,它通常被称为泄漏抽象或泄漏的API,被认为是不好的做法,主要是因为您的应用程序结构可能会发生变化,然后您有这些可能的情况:

  • 你需要更改你的API,当某个人已经被某人使用时,这是一项非常重要的任务;
  • 您的API不再反映您的应用程序结构,从而导致不一致;
  • 将您的应用程序结构或数据库架构暴露给全世界可能会产生安全隐患。

考虑到这些因素,您可以首先设计API,重点放在易用性上。您的API的使用者无需了解或关心您的应用程序架构。

答案 1 :(得分:0)

我认为保持相同的架构非常重要,因为您不得不提供简单的API,它会在服务器端强制实施简化的架构。 也就是说,当然您不希望暴露任何服务器端方法甚至是返回对象的每个服务器端属性。

在Kaltura中,我们也相信平坦(非嵌套)路径以简化API。 有关更多指南,请参阅我的博客:http://restafar.com/create-new-rest-server/