关于APP接口设计

2023-11-15

最近一段时间一直在做APP接口,总结一下APP接口开发过程中的注意事项:

 

1、效率:接口访问速度

APP有别于WEB服务,对服务器端要求是比较严格的,在移动端有限的带宽条件下,要求接口响应速度要快,所有在开发过程中尽量选择效率高的框架,PHP建议使用YAF框架。

 

2、数据格式

最好使用JSON格式数据,因为JSON有较好的跨平台性。

 

3、数据量

按需分配,APP客户端需要什么数据就返回什么数据,过多的数据量影响处理速度,最重要的是影响传输效率。

 

4、接口、参数命名准确

无论是接口还是参数,命名都应该有意义,让人一目了然。

 

5、一个页面尽可能就用一个接口

现在很多的APP页面都有广告、焦点图、文章列表等,对于这些不同格式的数据,不可能都分配一个接口,这样加大了APP请求接口数,影响响应速度。建议服务器端尽可能处理好数据后通过一个接口返回给APP客户端。

 

6、缓存

这点比较重要,不管是文件缓存还是memcache缓存。

 

7、接口要有可扩展性

 

8、接口安全

目前一般都是在APP客户端和服务器通过约定的算法,对传递的参数值进行验证匹配。但是如果APP程序被反编译,这些约定的算法就会暴露,特别是在安卓APP中,有了算法,完全就可以通过验证模拟接口请求。

 

9、接口版本控制

对于接口版本控制,自己目前也没有找到一个好的方法,怎么去应对不断的APP版本升级,新、旧接口的处理。

 

10、接口数据、状态

接口必须提供明确的数据状态信息,不管是成功的,还是失败的,都必须返回给APP客户端。

 

以上10点就是自己在这端时间做APP接口过程中注意的事项,希望对你有所帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

关于APP接口设计 的相关文章

  • 限制传出 PHP+curl 请求的速率

    有没有办法限制 有延迟 向外部服务器发出 PHP curl 请求的速率 以便每秒只有 n 个请求 PHP 在 Fastcgi 模式下使用 因此无法使用睡眠 是的 有curl 多重处理程序 您可以使用 OOP 方式以 OOP 方式完成此操作这
  • 删除 cookie php

    我正在尝试创建一个带有登录系统的平台 并将用户名和密码存储在cookie中 以使用户即使关闭浏览器然后再次输入也能保持登录状态 我设法保存了cookie 但我不知道如何制作注销按钮 这是代码 function logout body app
  • 如何使用 *non-case* 类通过 Scala 从 JSON 反序列化?

    我正在编写一个 Scala 应用程序 需要序列化和反序列化 JSON 某些 JSON 对象具有超过 22 个字段 因此我无法使用案例类 并且也无法更改格式 我找到的所有 Scala JSON 库都只能 轻松地 与案例类一起使用 而不是与普通
  • 在 Twig 中使用 PHP 函数

    我有一个 PHP 代码 用于在我的通用控制器中为我的 Twig 模板添加一个新类 opencart htdocs catalog controller common cart php 该代码应检查设备是否是移动设备 function onS
  • 设置了 @version $Id$ 的 SVN Checkout

    我在 Subversion 中进行开发 在每个 PHP 文件的顶部都有以下注释块
  • Laravel eloquent 获取关系数

    我使用 Laravel 5 3 我有 2 张桌子 Articles id cat id title And Category id parent id title 我在模型中定义了我的关系 Article model public func
  • 如何使用 Libsodium-PHP 加密/解密 AES

    我需要用 PHP 加密 解密数据 我对此完全陌生 但是我读到 Libsodium PHP 是 AES 加密的最佳工具 就像我研究过的其他 PHP 加密库一样 Libsoduim PHP 似乎几乎没有提供如何使用该库的文档 我能够找到 任何有
  • 如何将多个数据系列导入 Highcharts

    以下代码有效 var options1 chart renderTo container1 series getJSON tokyo jsn function data options1 series 0 data data var cha
  • HTML 解析 - 从 div 内的表格获取数据?

    我对 HTML 解析 抓取的整个想法还比较陌生 我希望我能来这里获得我需要的帮助 基本上我想要做的 我认为 是指定我希望从中获取数据的页面的 url 在这种情况下 http www epgpweb com guild us Caelestr
  • 如何在 Objective C 中创建 json 字符串?

    我必须动态生成一个 json 字符串并需要发送到服务器 有谁知道如何使用NSJSONSerialization 下面是我的字符串 surveyid Survey1 responsetime dd mm yyyy hh mm ss locat
  • 在 Symfony 中重定向之前访问调试(分析器)信息

    提交表单后 我通常将用户重定向到另一个页面 表单本身除外 因此我丢失了配置文件 调试信息 如日志 我的意思是 单击 调试工具栏 后 我会获得有关重定向后请求的信息 但我确实知道 Symfony 保留有关上一页的信息 我的意思是它不会忘记它
  • 如何从 foreach(PHP) 中只获取一个结果

    该代码循环一个数组并显示用户的所有视图 现在情况发生了变化 我只需要显示 foreach 循环的一个结果 我怎么做 table class report edits table thead tr class dates row td div
  • Yii2 - 如何自动加载自定义类?

    我创建了以下自定义类 我想在我的 Yii2 应用程序中使用它 common components helper CustomDateTime php namespace common components helper class Cust
  • Yii 框架将变量从控制器传递到视图

    要将变量传递给登录视图 我使用 this gt render login array model gt model 但我还需要在模板部分 footer php 中访问此变量 我试试这个 this gt render footer array
  • 来自发布数据的 CodeIgniter 未通过

    我试图在 CodeIgniter 中上传文件 但是当我添加 enctype multipart form data 时 不会有任何发布数据通过 甚至其他领域也根本没有 但是 当我不添加它时 我可以获得其他帖子数据 但当然没有文件上传 这里出
  • Rails Active Model Serializer - has_many 并访问父记录

    我正在尝试使用 Active Model Serializer 构建一些 Rails 模型的 JSON 表示 其中一些模型嵌入了其他模型 例如 我有活动和参加者 活动 has and belongs to many 参加者 class Ev
  • 如何从 PHP 的 sha256 加密迁移到 bcrypt?

    登录 rows sql gt fetch PDO FETCH ASSOC us id rows id us pass rows password us salt rows password salt status rows attempt
  • Doctrine 模型的默认排序属性

    我想知道是否有办法声明我的学说模型的默认顺序 e g 我有一个work模型并且它有photos 当我加载作品时 与其关联的所有照片都会加载到 work gt photos 当我显示它们时 它们是按 ID 排序的 在另一个字段上声明默认顺序或
  • 开发中的 Laravel 和视图缓存——无法立即看到变化

    我和一些朋友决定开始一个项目 我们偶然发现了 Laravel 并认为它可能是一个很好的工具 我们开始在本地使用它来开发一些页面 并注意到一些奇怪的事情 当我们用不同的信息更新视图时 大约需要 5 到 10 分钟视图信息才会发生变化 这就像
  • 无法使用 javascript 建立与安全 Websocket 服务器的连接

    我的开发环境是这样的 操作系统 微软Windows 10 PHP 框架 Laravel 8 0 PHP 版本 7 4 Websocket 服务器 cboden ratchet 0 4 3 WAMP 服务器 3 2 0 Apache 2 4

随机推荐

  • flask入门

    一 falsk简介 Flask是一个使用 Python 编写的轻量级 Web 应用框架 其 WSGI 工具箱采用 Werkzeug 模板引擎则使用 Jinja2 Flask使用 BSD 授权 Flask是一个轻量级的可定制框架 使用Pyth
  • 树莓派4B-使用 RPI.GPIO 模块的脉宽调制(PWM)功能

    脉宽调制 PWM 是指用微处理器的数字输出来对模拟电路进行控制 是一种对模拟信号电平进行数字编码的方法 在树莓派上 可以通过对GPIO的编程来实现PWM 创建一个 PWM 实例 1 p GPIO PWM channel frequency
  • sonar 配置sonarqube分析unity中的C# 代码

    参考文档 使用SonarQube对Unity项目进行代码分析的问题记录 zerozabuu 博客园 一文搞定 SonarQube 接入 C NET 代码质量分析 狂师 博客园 需要分析的代码是unity下的C 代码 配置流程主要参考上面两个
  • React hook 判断语句内不能使用useEffect(乱序问题)

    const Parent gt const count setCount useState 0 如果这样写控制台会报错 原因继续往下看 if count gt 1 useEffect gt console log 大于1
  • win7可关闭服务

    Adaptive brightness 如果你没有使用触摸屏一类的智能调节屏幕亮度的设备 该功能就可以放心禁用 ApplicationLayer Gateway Service 为Internet连接共享提供第三方协议插件的支持 Appli
  • 数码管时钟显示按键控制 fpga实现

    目录 原理 实现 原理 数码管原理 并且该数码管是共阳极 所以段选低电平有效 片选低电平有效 段选共用8个引脚 实现 思路 分三个模块实现 1 按键消抖 按键消抖 2 计数器模块 产生需要的时钟信号数据 3 数码管驱动 将输入的数据转换为段
  • BIG Endian 和 Little Endian(small endian)模式的区别

    BIG Endian 和 Little Endian small endian 模式的区别 谈到字节序的问题 必然牵涉到两大CPU派系 那就是Motorola的PowerPC系列CPU和Intel的x86系列CPU PowerPC系列采用b
  • QT 打开指定目录并选中指定文件

    目录 方法一 使用Qt自带的方法 方法二 使用windows自带工具 有时自动生成文件之后 点击某个按钮我们希望能够自动跳转到文件所在目录 打开之后不依附于运行程序 可能还需要选中该文件 环境 win10 Qt5 9 6 MinGW 方法一
  • 江苏大学计算机学院林琳,计算机学院教师岗副高及以下、其它专技中级及以下人员岗位聘用结果公示...

    副教授五级 6人 按姓名拼音排序 下同 毕建良 李峰 林庆 毛启容 王良民 朱利平 副教授六级 14人 陈伟鹤 韩飞 李莉 李星毅 潘雨青 钱少先 王洪金 熊书明 杨利霞 曾兰玲 赵念强 周从华 朱小龙 邹志文 副教授七级 13人 蔡涛 陈
  • Docker启动一个Centos镜像

    搜索可用的centos的docker镜像 docker search
  • 第三届国际金融科技论坛开幕,神州信息专家参与蓉城“论道”

    10月30日至31日 由西南财经大学 加州大学伯利克分校国际风险数据分析联盟 成都市地方金融监督管理局联合主办的 第三届国际金融科技论坛 SWUFE CDAR 2020 在成都举行 神州信息金融战略本部副总裁潘志江 神州信息金融科技首席风控
  • google 图片下载

    def xia url headers headers user agent Mozilla 5 0 Windows NT 10 0 WOW64 AppleWebKit 537 36 KHTML like Gecko Chrome 78 0
  • Cadence 17.4 使用TIPS: Orcad 输出PDF

    首先File gt Export gt PDF PDF Export 设置页面 其中有4个输出工具供选择 此处我选择第一个Acrobat Distiller 这个是电脑里安装了咱们常用的Adobe Acrobat DC 就会自带的程序 如果
  • 线性分组码最小汉明距离_信息与编码系列(六)线性码~线性代数

    目录 序 线性码的矩阵描述 线性码的等价性 线性码的最小距离 标准数组 Standard Array 校验子解码 Syndrome Decoding 序 这篇文章相当于做一篇 索引 将线性代数的东西和线性码对应起来 方便日后出现问题能够快速
  • jsp调用服务器上的其他程序(C程序)

    String area dz String req getParameter area String id dz String req getParameter id String ip 10 xxx x xx String encodeS
  • SAM-DETR学习笔记Accelerating DETR Convergence via Semantic-Aligned Matching

    Abstract 最近开发的DEtection TRansformer DETR 通过消除一系列手工制作的组件 建立了一个新的对象检测范式 然而 DETR的收敛速度非常慢 这大大增加了培训成本 我们观察到 慢收敛主要归因于在不同特征嵌入空间
  • dropout层

    深度神经网 DNN 中经常会存在一个常见的问题 模型只学会在训练集上分类 过拟合现象 dropout就是为了减少过拟合而研究出的一种方法 一 简介 当训练模型较大 而训练数据很少的话 很容易引起过拟合 一般情况我们会想到用正则化 或者减小网
  • EIGamal数字签名的实现(c++)——大三密码学实验

    实验原理 1 密钥产生 Alice要对一个消息签名 她选择一个大素数p和一个本原根g 选择一个秘密整数 并且计算 p g y 公开 x秘密保存 注 EIGamal签名方案的安全性在于x的保密性 由于离散对数学问题难解 很难由 p g y 确
  • 电脑上显示打印机无法连接服务器错误代码,电脑怎么连接打印机显示错误代码的解决办法...

    下面来看看小编为您整理的电脑怎么连接打印机显示错误代码的答案 电脑怎么连接打印机显示错误代码内容导航1 连接不上打印机错误0x00000709 打印机出现0x00000709错误代码可能是因为网络或者打印设置错误 具体解决步骤如下 1 首先
  • 关于APP接口设计

    最近一段时间一直在做APP接口 总结一下APP接口开发过程中的注意事项 1 效率 接口访问速度 APP有别于WEB服务 对服务器端要求是比较严格的 在移动端有限的带宽条件下 要求接口响应速度要快 所有在开发过程中尽量选择效率高的框架 PHP