所有 api 操作的一条路线

One route for all the api operations

我正在研究 api,使用 Laravel 5.6,用于一个应用程序,在该应用程序中,我被要求为可以由发送的参数控制的所有操作提供一条路径。这样做,应该可以让前端开发人员的工作更轻松,他/她不必担心要调用的不同路由,因为一条路由就可以完成所有工作。

这样就会有一个控制器,在一个方法中包含所有相关功能。对各种表的不同操作应该根据给定的参数来区分,而不是其他。

所以我只是想知道继续使用这种方法是否可取,因为我从未研究过这种概念。

如前所述,所有这些都将在很大程度上取决于数据模型,这在您的问题中并不清楚。

所以主要问题是,api 会提供什么样的数据?

但在我不知道的情况下,提议的解决方案对我来说并不是一个好方法。

我的缺点是:

  1. 看来后端正在修复前端缺少结构。

    通常不同的前端组件会依赖不同的 API 端点。混合使用将导致难以在所有方面维护代码。

  2. 前端应该担心他们调用什么。

    我看不出前端的逻辑确实知道他们想发送哪些参数,但他们不想知道 寄到哪里?

  3. API 代码可维护性有利于前端吗?这对我来说毫无意义,这会回来困扰你。
  4. 您正在为 api 添加不必要的复杂性。

    想想你将如何处理输入验证,以及你将如何 return 将其发送到前端。

物有所值;

我通常从一个简单的 REST api 开始,直接在数据库模型上允许简单的 CRUD 和列表以及简单的 filter/sort/paging 操作。

对于 Laravel,这意味着在您的实体之上使用 resource controllers,这将公开该实体的 CRUD 端点。

这将公开一个简单的界面,客户端可以在其中 fetch/create/update 单个实体。

最重要的是,如果需要,我将创建额外的 API 端点,如果特定的 frontend/usage 需要的话,并且除此之外将该功能移动到 api/backend.

是有意义的