我正在使用 Laravel 构建一个 RESTful Web 服务,并使用 Angluarjs 在前端构建一个单页面应用程序。现在我应该把 Angularjs 文件放在哪里?我应该将它们放在 Laravel 安装的公共文件夹中,还是应该将它们完全分开,因为我将对 Web 服务中的资源发出调用,并且它将返回 JSON 数据,因此不需要将它们放在同一个地方。标准或最佳实践是什么?
现在,第二部分。如果我正在构建一个简单的 Todo 应用程序,我应该如何管理 Laravel 中的路线和资源。这是我真正感到困惑的地方,有点难以解释,但请听我一分钟。例如,我在 /users 处有一个用户资源,我可以通过在 /users 处发出 GET 请求来获取所有用户,或者通过在 /users 处发出 POST 请求来创建新用户。同样,我可以在 /users/1 发出 GET 请求并使用其他请求动词获取第一个用户等。现在,我有另一个称为任务的资源。我应该如何实施这个资源?我应该像嵌套资源那样实现它吗 /users/{user_id}/tasks.当我在 /users/1/tasks 发出 GET 请求时,它将获取第一个用户的所有任务。但现在它变得复杂了,因为如果在 /users/10/tasks/1 发出 GET 请求,它是否应该获取第 10 个用户的第一个任务。但是这样的逻辑的实现变得非常困难,因为我必须寻找第 10 个用户的第一个任务。
我想出了解决这个问题的方法,只在 /users/{user_id}/tasks 设置 GET 路由,这显然会返回指定用户的所有任务。然后我将创建一个完全不同的资源/任务来处理所有其他请求动词。我这样做对吗?
另外,如果我使用像 MongoDB 这样的 NoSQL 数据库,在这种情况下,数据将以 /users/{user_id}/tasks/{task_id} 的方式存储,因为每个用户的任务都不会很难实现将在他们自己的 JSON 对象中。
我的思考方向正确吗?我是新手,我不完全知道解决此类数据库架构问题的标准方法是什么?最佳实践是什么?
这是我的建议。
基本上,您需要将应用程序划分为模块。比如说登录、功能 1、功能 2 等。现在您应该为每个模块创建一个文件夹,您可以在其中保存与其相关的所有文件(controllers.js、services.js、index.html、style.css、filters.js 和 [name模块].js)通过这种方式,您可以分离所有代码,从而可以移动代码。
您可以将模块定义为:
(function () {
'use strict';
angular
.module('myapp.login', [
'myapp.login.controllers',
'myapp.login.services'
]);
}());
你需要将其包含在 app.js 中,如下所示
angular
.module('myapp', [ 'ngRoute',
'ngResource',
'myapp.login'
])
这样您就可以添加所有模块。
您想要包含的另一重要文件夹是公用文件夹。您可以在其中包含应用程序中可能拥有的所有可重用组件的模块。
为了进行测试,您可以有一个单独的测试文件夹,其中包含(e2e 和单元文件夹)。我一直在使用黄瓜进行测试并且我已经创建了features
文件夹,我在其中为定义功能的每个模块创建文件夹。您也可以创建一个名为的文件夹steps
每个模块可以有单独的 js 文件。
在它之上,您可以拥有配置文件,您可以在其中为所有 api 创建变量,以便您可以从一个地方控制它。
希望这可以帮助 :)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)