RESTAPI应该反映服务器端应用程序体系结构吗 我正在写我的第一个网络应用程序。我只是想知道RESTAPI设计的约定是怎样的。让它反映我的服务器端架构或任何似乎更容易推理的东西是否更好
我想做以下两件事:RESTAPI应该反映服务器端应用程序体系结构吗 我正在写我的第一个网络应用程序。我只是想知道RESTAPI设计的约定是怎样的。让它反映我的服务器端架构或任何似乎更容易推理的东西是否更好,api,rest,web,Api,Rest,Web,我想做以下两件事: /serviceProvider/product 或 我的服务器端架构都被分成由服务提供商组织的模块,但是它们都公开了一个产品查询API。理想情况下,API的设计应该对其消费者最有意义。根本不是反映您的“服务器架构”的好理由。事实上,这通常被称为泄漏的抽象或泄漏的API,被认为是不好的做法,主要是因为您的应用程序结构可能会发生变化,然后出现以下可能的情况: 你需要改变你的API,这是一个非常重要的任务,当它已经被别人使用时 您的API不再反映您的应用程序结构,从而导致不一
/serviceProvider/product
或
我的服务器端架构都被分成由服务提供商组织的模块,但是它们都公开了一个产品查询API。理想情况下,API的设计应该对其消费者最有意义。根本不是反映您的“服务器架构”的好理由。事实上,这通常被称为泄漏的抽象或泄漏的API,被认为是不好的做法,主要是因为您的应用程序结构可能会发生变化,然后出现以下可能的情况:
- 你需要改变你的API,这是一个非常重要的任务,当它已经被别人使用时李>
- 您的API不再反映您的应用程序结构,从而导致不一致李>
- 向外界公开应用程序结构或数据库模式可能会带来安全隐患
考虑到这些因素,您最好在设计API时首先关注易用性。API的使用者不需要知道或关心您的应用程序体系结构。我认为保持相同的体系结构很重要,因为您必须提供简单的API,它将在服务器端强制您简化体系结构。 当然,也就是说,您不想公开任何服务器端方法,甚至不想公开返回对象的每个服务器端属性 在Kaltura中,我们也相信扁平(非嵌套)路径可以简化API。
有关更多指导原则,请参阅我的博客:Plus one,这就像在默认实现之后命名接口一样。坏习惯。
/product/serviceProvider