我想写一个“标准”的商业网站。所谓“标准”,我指的是这个站点运行通常的前端HTML5、CSS和JavaScript,后端(处理东西),以及数据库运行MySQL。它是一个基本的CRUD站点:前端只是将数据库存储的任何东西都做得很漂亮;后端不管用户输入什么内容并进行一些处理,都会写入数据库。就像外面的大多数网站一样。
在创建开始编码的GitHub存储库时,我意识到我不理解前端后端和API之间的区别。另一种表达我问题的方法是: API从何而来?
我将列出更多的细节,然后是我的问题--希望这能让你们更好地了解我的实际问题是什么,因为我太困惑了,我不知道该问什么具体的问题。
更多细节:
我的问题:
鼓励解释API在前端后端的作用的详细答案。如果答案取决于编程模型(模型-视图-控制器模式以外的模型),请描述API的其他思考方式。
发布于 2013-06-29 22:08:18
我认为你对API这个词被许多web开发人员滥用和滥用的方式感到困惑。
发布于 2013-06-29 21:52:18
让我们勾勒出一个“典型”网站的架构,既有“前端”,也有“后端”。而且由于它是一个网站,我们也将明确地有一个“客户”。(因为浏览器中的JavaScript无法直接调用服务器上的MySQL。)
为了清楚起见,我们使用的术语如下:
对于设计正确的程序,这些组件中的每一个都有一个用于与其他组件通信的私有API。“前端”PHP代码不直接发出任意的SQL SELECT语句,而是调用存储过程、预先授权的SQL,甚至是对运行在后端服务器上的完全不同的PHP实例的不同PHP调用。这些存储过程或不同的HTTP调用本身就是一个API。
即使我们考虑到我们设计中的一些杂质,定义也不会改变。如果您的PHP文件直接写入并向MySQL发送string,则IT仍然是一个API,尽管这是一个不太可能重复的非常不寻常的API。
请注意,您的前端PHP完全有可能是严格同步的,没有任何AJAX巫毒。如果您在上述同步文件中调用相同的外部PHP函数,则可以将它们视为使用与客户端版本相同的API,尽管此处使用的"API“一词可能不能给出任何真正的清晰度。
API毕竟是一个应用程序接口,它实际上是指一个程序在它自己的进程之外的任何时候调用。如果您正在编写一个具有前端和后端的项目,如上面所示的AJAX/PHP/MySQL或make / Server,那么有必要指定您将如何相互调用,如果没有其他原因,那么就可以很容易地知道在什么地方发生故障时应该在哪里查看。
(公共API的主题完全是另外一回事。在上面的示例中,只有客户机中显示的URL是“公共API”。从本质上说,其他一切都是“私人的”。和前面一样,您不希望任何超出您控制范围的代码调用您的内部API,您可以直接否认这样的结果,或者保留将来这样做的权利。
发布于 2020-12-29 05:21:19
开始
API从何而来?
看起来,您需要考虑使用正确的图表:

把它拆开:
为完整起见:
前端调用调用API的后端吗?
不是的。"Web服务“是”称为“的实用事物。API是URL名称、数据格式和每个URL的用途的商定标准。
或者前端只是调用API而不是调用后端呢?
不是的。"API“不是”调用“。这是有文档记录的,前端和后端团队共享这些信息,以便在中间见面。
后端是否只是执行API而API将控件返回给后端(其中后端充当最终控制器,委托任务)?
不是的。后端很宽。虽然前端都包含在浏览器中,但后端通常是多个设备之间的一切: CDN、Web服务器、应用服务器、Web服务端点、数据库、架构、.
(实际上有两个“控制器”:一个用于浏览器中的GUI行为,另一个是Application。但是更具体地说,通常有许多Web服务托管在应用程序服务器中。每个Web都是一种控制器,Application路由到正确的Web.)
更有洞察力:
前端和后端通常更多的是关于团队和他们所做的。前端的人更像平面设计师,他们关心对齐,空格,用户任务,颜色,字体,措辞,信息层次。后端的人更像工程师,喜欢解决技术问题。两者都很有创意。
概念上:
这些基本的概念起到了指导性的作用,因为在实践中,它会被普遍的限制、习俗和最佳实践所混淆。
https://softwareengineering.stackexchange.com/questions/203205
复制相似问题