Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RESTAPI应该反映服务器端应用程序体系结构吗 我正在写我的第一个网络应用程序。我只是想知道RESTAPI设计的约定是怎样的。让它反映我的服务器端架构或任何似乎更容易推理的东西是否更好_Api_Rest_Web - Fatal编程技术网

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