• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ios > APP接口开发的字段暴露问题

APP接口开发的字段暴露问题

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-05

佚名通过本文主要向大家介绍了消息缺少app字段,qq消息缺少app字段,接口不能包含字段,接口字段,配置字段创建问题等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: APP接口开发的字段暴露问题
描述:

刚从web开发转到APP接口开发,遇到了一个问题:
在服务器向APP返回数据时,是否需要遵循‘只返回需要的字段’的习惯?
例如我们有个产品表,结构如下
|---ID---|--名称--|--链接--|--日利率--|--月利率--|--购买人数--|--成功率--|

在产品列表页面的时候,只需要ID,名称,链接这三个数据,其他字段在此页面不需要,那么服务器返回数据的时候,是否一定不能把其他在本页面不需要的字段暴露给APP?

如果每次都返回所有字段,后端这边会节省时间和代码量。但是如果返回所有,由于一个表60+的字段,对网络请求和相应速度有影响。


补充一下,该数据在多个地方都在用,每个地方所需要的字段都不太一样,如果从复用的角度看,几乎就是需要返回所有字段。。那么是选择返回所有以便于复用还是每个接口单独设计接口返回字段呢?


解决方案1:

按需返回,合并求情,多场景复用。
正常情况下全部使用别名返回,不能暴露数据库字段。

解决方案2:

我觉得看客户端是否需要做请求合并了,其实你担心的只是几个字节的事情,你又没有在链接中返回图片等流数据,不要太考虑流量的问题,往往客户端的消耗都是在多次建立和服务端的链接上。

解决方案3:

个人觉得,后端一般不应该直接返回数据库字段,最好是仅暴漏需要的数据。

后端直接返回数据库字段是很偷懒的做法,如果是内部使用的web后台,数据库也不复杂,返回的数据也不被多个客户端使用,可以这么做,优点是简单快速。其他情况应该都不应该,比如表字段很多,查询所有字段会降低性能;给终端用户调用的API,如果直接返回表结构可能会暴漏一些敏感信息;有多个客户端调用的API(web, ios, android, 第三方用户等),需要设计良好的数据结构。

其实后端框架的ORM一般都可以限制返回的字段,也可以alias字段名,在Model中简单写几行代码就可以做搞定。如果需要更好的控制返回字段,应该使用transformer:

  • php: Fractal

  • python: marshmallow

  • ruby: ActiveModel Serializers

解决方案4:

虽然没听过遵循,但是我觉得,按需返回是减少IO最好的方式。不仅用户体验好,服务器压力也小。

解决方案5:

依照情况而定吧

  • 看这个接口的复用情况:如果一个接口在多处复用,但是响应的数据结构差别不大,那就都返回即可

  • 理论上返回的数据量越少越好

解决方案6:

这个也太费流量了吧,用户会不爽的。

数据库不是有View么,你在产品表的基础上给它套上一个View,只显示需要的字段。

SQL什么的复制粘贴、替换表名为View的名字(然后删掉SQL语句里不需要的字段)就差不多可以了。

真心不怎么费时间,代码也不需要做太大更改。这种只遮盖字段的View速度跟飞一样,几乎不会影响服务器性能。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • APP接口开发的字段暴露问题

相关文章

  • 2017-06-05 iOS开发,一个label里有数字有汉字,怎样让数字的font比汉字大
  • 2017-06-05 关于GCDAsyncUdpSocket接受到数据后address参数怎么转码成服务器ipip
  • 2017-06-05 如何通过runtime修改系统类的一个property属性的初始值?
  • 2017-06-05 ios针对某个View一段时间没有接收到用户的相应执行事件
  • 2018-01-28iOS 设备CPU的架构
  • 2017-06-05 iOS开发,使用YYModel,在iOS9上没问题,在iOS8上奔溃
  • 2017-06-05 用友华表cell插件cell里面显示相册大图性能优化
  • 2017-06-05 关于NSBundlepathForResource()取本地文件路径问题
  • 2017-06-05 NSDictionary调用writeToFile出错
  • 2017-06-05 (swift)函数的返回类型"Int->Int"是什么意思?

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 截图怎么截iOS截图有白边
    • 控制器viewController上面加了tableview我要怎么实现中间的几个按钮跟随界面的滑动,实现像京东一样的app
    • 请教ios音乐播放时,界面动态显示图片的问题?动不起来我的图片。
    • 天增岁月人增寿CocoaPods101版本增加的新写法?
    • replaykit录屏经常是黑屏录下来的
    • iOS开发,为了让自己开发的程序易于维护,你们会在开发的时候采取哪些措施?
    • 支付宝支付密码是哪个支付验证签名支付失败?——微信支付的app支付
    • afnetworking从接口中得到数据,怎么把数据放在另外的变量里呢
    • APP接口开发的字段暴露问题
    • swift新手请教,我在swift中调用selfinit,报错了,怎么回事?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有