假设API已有详细记录,并且描述了每个可能的响应字段.
Web应用程序的服务器API是否应在JSON响应中排除空字段以降低流量?这根本不是一个好主意吗?
我试图计算像Twitter这样的大型应用程序减少的流量,这些数字实际上非常有说服力.
例如:如果"someGenericProperty":null从每个单独的API响应中排除单个响应字段(26个字节),而据报道Twitter每天有130亿个API请求,则流量减少量将超过300 Gb.
每天超过300 Gb的流量是相当省钱的,不是吗?这可能是有史以来最天真,最简单的计算,但仍然如此.
我正在使用Grunt连接grunt-contrib-uglify任务来缩小我的应用程序中的JavaScript.
在缩小时,它会删除'use strict'除第一个之外的所有语句,因此我将获得一个巨大的JavaScript文件,顶部带有"use strict"指令.
问题是全局'use strict'指令使浏览器在"严格模式"下执行我在项目中使用的每个lib的代码,并且它导致错误,因为不是每个第三方代码都是为严格模式编写的.
关于如何解决这个问题的任何想法?
我正在处理的当前项目是一个 Web 应用程序,必须在他们自己的服务器上将其交付给多个客户。该网站需要一个权限控制系统,该系统将管理用户可以或不可以使用的区域和功能。
至于知道,我正在设计一个数据库驱动的权限系统,权限存储在数据库中。每个用户都有一个角色。该角色定义了可用的列表权限。架构如下所示:
用户表
1. user_id
2. 名称
3. role_id
角色表
1. role_id
2. 名称
权限表
1.permission_id
2.名称
roles_permissions表:
1. ROLE_ID
2. permission_id
在代码中,我将获取登录的用户角色和权限,并检查用户是否能够执行操作或查看区域,如下所示:
if($user->hasPermission('Edit HR')) {
// let user see the editing HR section
}
Run Code Online (Sandbox Code Playgroud)
hasPermission 将检查用户是否具有名称为“Edit HR”的权限,并将返回所需的结果。我看到的问题是数据库表必须具有名称完全是“Edit HR”的权限记录,而不是“Edit_hr”或“HR Editing”。所以我必须确保权限系统的数据对于应用程序使用的每个数据库都是相同的。哪一种让我觉得这是一个有缺陷的设计,需要重新设计。创建新的部分和功能还需要更新所有数据库,这也让我感到难过。
所以,基本上,问题是:设计数据库驱动的权限系统并在多个数据库上保持数据库完整性的最佳方法是什么?
api ×1
gruntjs ×1
http ×1
javascript ×1
json ×1
permissions ×1
php ×1
rest ×1
uglifyjs ×1
web ×1