Api 了解",;后端“;

Api 了解",;后端“;,api,frontend,backend,business-logic,Api,Frontend,Backend,Business Logic,什么是后端代码?它仅仅是API吗?后端是否有业务逻辑 例如,如果我有一个时间表应用程序,用户输入他们一天的时间,那么将该信息添加到数据库的逻辑是否都在前端?后端只是为了公开一个API来向数据库添加/更新信息?对于这个简单的时间表应用程序,一般来说,前端和后端会是什么?这是一个非常广泛的问题/主题,但我将尝试解释我对这些术语的看法,以及如何决定放在哪里: 通常,“前端”是用户将看到的。为了实现这一点,必须在用户设备上“存储并执行”该代码。我很确定这意味着(有经验的)用户将能够查看前端的代码,并且可

什么是后端代码?它仅仅是API吗?后端是否有业务逻辑


例如,如果我有一个时间表应用程序,用户输入他们一天的时间,那么将该信息添加到数据库的逻辑是否都在前端?后端只是为了公开一个API来向数据库添加/更新信息?对于这个简单的时间表应用程序,一般来说,前端和后端会是什么?

这是一个非常广泛的问题/主题,但我将尝试解释我对这些术语的看法,以及如何决定放在哪里:

通常,“前端”是用户将看到的。为了实现这一点,必须在用户设备上“存储并执行”该代码。我很确定这意味着(有经验的)用户将能够查看前端的代码,并且可能能够理解它是如何工作的。(稍后我将进一步解释这一点的相关原因。)

另一端的“后端”通常作为某人提供的“原样”服务提供,可通过一个或多个可用通信协议访问,其接口通常以某种方式记录,即使它不是公开的。现在最突出的例子是restapi和graphqlapi。 正如您已经提到的,集中式状态管理(例如存储数据)可以是其中的一个重要部分(,但不一定非得如此)。 当“调用”后端时,某些代码会在某些服务器上执行,而响应(如果有的话)是前端或用户了解的唯一新信息

什么去哪里?

需要考虑很多方面来决定代码的哪一部分在哪里。没有什么灵丹妙药:我相信可以找到所有可能组合的例子

  • 根据用户偏好(例如,基于浏览器的移动应用程序、命令行界面等),单个后端可以有许多不同的前端。
    • 它们可以有不同的发布周期和更新机制,因此对后端的更改可能需要保持向后兼容
  • 出于安全、操作或数据一致性的原因,您可能需要在后端实现对错误/无效输入的处理,尤其是在(通信协议类型)发生更改时。特别是因为提供前端也意味着可以知道如何调用后端,所以也可以用不同的方式调用它(无论是有意还是无意)
  • 由于前端和后端之间的操作很可能是异步的,因此某些错误处理(如连接问题)只能在前端处理
  • 身份验证和授权/机密管理:如果您的后端只是数据库的一个API,那么它需要知道正确的凭据,因此需要以某种方式将它们交付给用户,并且可以进行检查(并且可能使用“mis”)
  • 业务逻辑也是如此:不将其交付给用户或潜在竞争公司可能有知识产权或战略原因

当然,你需要考虑你有多少资源来实现一个适合你需要的解决方案。

< P>这是一个非常广泛的问题/话题,但我会尝试解释我对这些术语的看法,以及如何决定放在什么地方:

通常,“前端”是用户将看到的。为了实现这一点,必须在用户设备上“存储并执行”该代码。我很确定这意味着(有经验的)用户将能够查看前端的代码,并且可能能够理解它是如何工作的。(稍后我将进一步解释这一点的相关原因。)

另一端的“后端”通常作为某人提供的“原样”服务提供,可通过一个或多个可用通信协议访问,其接口通常以某种方式记录,即使它不是公开的。现在最突出的例子是restapi和graphqlapi。 正如您已经提到的,集中式状态管理(例如存储数据)可以是其中的一个重要部分(,但不一定非得如此)。 当“调用”后端时,某些代码会在某些服务器上执行,而响应(如果有的话)是前端或用户了解的唯一新信息

什么去哪里?

需要考虑很多方面来决定代码的哪一部分在哪里。没有什么灵丹妙药:我相信可以找到所有可能组合的例子

  • 根据用户偏好(例如,基于浏览器的移动应用程序、命令行界面等),单个后端可以有许多不同的前端。
    • 它们可以有不同的发布周期和更新机制,因此对后端的更改可能需要保持向后兼容
  • 出于安全、操作或数据一致性的原因,您可能需要在后端实现对错误/无效输入的处理,尤其是在(通信协议类型)发生更改时。特别是因为提供前端也意味着可以知道如何调用后端,所以也可以用不同的方式调用它(无论是有意还是无意)
  • 由于前端和后端之间的操作很可能是异步的,因此某些错误处理(如连接问题)只能在前端处理
  • 身份验证和授权/机密管理:如果您的后端只是数据库的一个API,那么它需要知道正确的凭据,因此需要以某种方式将它们交付给用户,并且可以进行检查(并且可能使用“mis”)
  • 业务逻辑也是如此:不将其交付给用户或潜在竞争公司可能有知识产权或战略原因
一个