首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >API与前端后端的区别

API与前端后端的区别
EN

Software Engineering用户
提问于 2013-06-29 20:46:36
回答 4查看 110.7K关注 0票数 32

我想写一个“标准”的商业网站。所谓“标准”,我指的是这个站点运行通常的前端HTML5、CSS和JavaScript,后端(处理东西),以及数据库运行MySQL。它是一个基本的CRUD站点:前端只是将数据库存储的任何东西都做得很漂亮;后端不管用户输入什么内容并进行一些处理,都会写入数据库。就像外面的大多数网站一样。

在创建开始编码的GitHub存储库时,我意识到我不理解前端后端和API之间的区别。另一种表达我问题的方法是: API从何而来?

我将列出更多的细节,然后是我的问题--希望这能让你们更好地了解我的实际问题是什么,因为我太困惑了,我不知道该问什么具体的问题。

更多细节:

  • 我想试试模型-视图-控制器模式。我不知道这是否改变了问题/答案。
  • API将是RESTful。
  • 我希望使用我的后端使用我自己的API,而不是允许后端欺骗和调用特殊查询。我认为这种风格更一致。

我的问题:

  • 前端调用调用API的后端吗?或者前端只是调用API而不是调用后端呢?
  • 后端是否只是执行API而API将控件返回给后端(其中后端充当最终控制器,委托任务)?

鼓励解释API在前端后端的作用的详细答案。如果答案取决于编程模型(模型-视图-控制器模式以外的模型),请描述API的其他思考方式。

EN

回答 4

Software Engineering用户

回答已采纳

发布于 2013-06-29 22:08:18

我认为你对API这个词被许多web开发人员滥用和滥用的方式感到困惑。

  • API是指应用程序编程接口,即不同系统(或同一系统的一部分)之间的任何官方指定的接口。
  • 不久前,网络初创企业通过web服务API (通常使用REST和JSON )提供对内部数据的公开访问成为一件大事,从而允许第三方开发人员与他们的系统集成。Web开发人员开始使用"API“这个术语来具体地(而且仅)指”公开访问的web服务“,并错误地使用它来包括其实现。
  • 就前端和后端而言,这个web服务API (及其实现)是后端。它的某些部分可以公开访问,而其他部分仅限于您的前端。
  • 它的另一个名称是“服务层”,即的代码
    • 表示前端调用的服务。
    • 不包含显示逻辑(毕竟,这是前端的工作)
    • 比简单的CRUD操作更抽象和粗粒度(一个服务调用通常涉及多个CRUD操作,应该在数据库事务中执行)。
    • 包含应用程序的业务逻辑。
票数 38
EN

Software Engineering用户

发布于 2013-06-29 21:52:18

让我们勾勒出一个“典型”网站的架构,既有“前端”,也有“后端”。而且由于它是一个网站,我们也将明确地有一个“客户”。(因为浏览器中的JavaScript无法直接调用服务器上的MySQL。)

为了清楚起见,我们使用的术语如下:

  • Client:符合HTML5标准的浏览器,尤指。加载了DOM和JavaScript来操作它。
  • 前端:指向DOM的PHP服务器,包含所请求的单个页面和一些AJAX样式的XML或JSON访问点。
  • 后端:运行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,您可以直接否认这样的结果,或者保留将来这样做的权利。

票数 14
EN

Software Engineering用户

发布于 2020-12-29 05:21:19

从正确的图片

开始

API从何而来?

看起来,您需要考虑使用正确的图表:

把它拆开:

  • 前端视图控制器都是关于GUI行为的,它是用JavaScript编写的。
  • 视图控制器javascript以符合协议API的方式调用web服务。这是后端的入口点。
  • API是前端和后端协同工作的商定方式。这在结构上隐含在匹配的代码中,并通过文档显式地规划。
  • web服务最终是关于后端数据库中的数据存储和检索。
  • (有时,一个网络服务可能反过来又是另一个第三方网络服务的门户。例如。( PostMark用于电子邮件)

为完整起见:

前端调用调用API的后端吗?

不是的。"Web服务“是”称为“的实用事物。API是URL名称、数据格式和每个URL的用途的商定标准。

或者前端只是调用API而不是调用后端呢?

不是的。"API“不是”调用“。这是有文档记录的,前端和后端团队共享这些信息,以便在中间见面。

后端是否只是执行API而API将控件返回给后端(其中后端充当最终控制器,委托任务)?

不是的。后端很宽。虽然前端都包含在浏览器中,但后端通常是多个设备之间的一切: CDN、Web服务器、应用服务器、Web服务端点、数据库、架构、.

(实际上有两个“控制器”:一个用于浏览器中的GUI行为,另一个是Application。但是更具体地说,通常有许多Web服务托管在应用程序服务器中。每个Web都是一种控制器,Application路由到正确的Web.)

更有洞察力:

这是关于团队的

前端和后端通常更多的是关于团队和他们所做的。前端的人更像平面设计师,他们关心对齐,空格,用户任务,颜色,字体,措辞,信息层次。后端的人更像工程师,喜欢解决技术问题。两者都很有创意。

概念上:

  • 前端是需要数据的GUI
  • 后端是其他的一切:数据/架构、安全性、进程和运行它的基础设施

这些基本的概念起到了指导性的作用,因为在实践中,它会被普遍的限制、习俗和最佳实践所混淆。

限制、习俗和当前最佳实践

  • 在实践中:动态网页是一半。它生成HTML (前端),但获得数据混合(后端)。对于单个页面应用程序或AJAX应用程序。它只是前端而已。
  • 限制: Web浏览器希望使用HTTP来获取数据。
  • 自定义:使用web服务,这样web浏览器就可以获取数据.(这不是在做GUI,所以它绝对是后端)
  • 出现: GraphQL是一种相对较新的方式,因此Web浏览器可以连接到单个端点,该端点可以更广泛地公开对底层数据库的访问。
票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/203205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档