PHP开发APP接口实现--基本篇

摘要:
POST请求如下:最直观的区别是GET在URL中包含参数,POST通过请求体传递参数。

最近一段时间一直在做APP接口,总结一下APP接口开发以来的心得,与大家分享:

1. 客户端/服务器接口请求流程:

安卓/IOS客户端   –> PHP接口 –> 服务器端  –> 数据处理 –> 返回值(客户端接收并处理)

APP的通信方式:

客户端 (接口地址:http://app.com/api.php?format=xml/json)
客户端APP ------------------------------> 服务器
     <----------------------------- 
         返回数据

 

2.客户端APP通信格式区别 

1.XML:扩展标记语言 ,(用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言)

2.JSON:一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。可在不同平台之间进行数据交换。JSON采用兼容性很高的、完全独立于语言文本格式,同时也具备类似于C语言的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)体系的行为。

JSON格式如下:

PHP开发APP接口实现--基本篇第1张

XML的可读性要好,JSON的生成数据性 (json_encode(数组)) 传输速度方面要好

3.客户端请求方式/传值类型

3.1 GET请求:Get请求参数通过URL地址传递,在URL中传送的参数是有长度限制的,传值大小为2KB,而且相对于POST方式不是很安全。

3.2 POST请求:POST请求参数通过request body传递参数,数据传输安全性较高,而且支持多种数据格式的传输,如,数组、字符串等等。

POST的请求如下:

 PHP开发APP接口实现--基本篇第2张

最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。

3.文档规范

接口文档主要包括:文档名称、接口名称、请求地址、请求方式、请求参数、返回值、参数注释以及状态码。

3.1 请求示例:

PHP开发APP接口实现--基本篇第3张

3.2 返回示例:

 PHP开发APP接口实现--基本篇第4张

3.3 参数注释:

PHP开发APP接口实现--基本篇第5张

3.4 返回结果

 PHP开发APP接口实现--基本篇第6张

常用的有在线文档和doc文档两种,个人推荐在线文档,https://apizza.net 

在团队协作开发中,文档规范能更快的提高团队工作效率,降低沟通成本,加之APP版本迭代,方便快速查阅文档。

4.接口调试

客户端在请求接口时,根据文档接口传递相关参数,类似于我们做表单提交时,传递的参数一样。客户端请求接口时,一般流程如下:

接口地址:http://api.nanniwan.com/user/ls.api
接口参数:

① 必要性的token验证(即用户登录验证)

② 必传参数:接口接收数据并做处理(具体根据业务需求定义)

③ 请求 响应  返回值

可以通过Postman来模拟调试接口,具体如下:

 PHP开发APP接口实现--基本篇第7张

至此,APP接口基础篇就讲解完毕,具体实践,请看一下节。

原文:https://blog.csdn.net/qq_29920751/article/details/83271818

【PHPer技术栈】专注后端开发,倡导开源文化,做一个有趣、有灵魂的PHPer工程师,欢迎大家关注!

 PHP开发APP接口实现--基本篇第8张

免责声明:文章转载自《PHP开发APP接口实现--基本篇》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Android 代码设置RelativeLayout元素居中【Mybatis-Plus进阶学习(六)】多租户SQL解析器下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

软件测试理论1

软件测试理论知识点 第一天 1、按是否查看程序内部结构分为:(1)黑盒测试(black-box testing):只关心输入和输出的结果(2)白盒测试(white-box testing):去研究里面的源代码和程序结构2、按是否运行程序分为:(1)静态测试(static testing):是指不实际运行被测软件,而只是静态地检查程序代码、界面或文档可能存在...

如何让服务端同时支持WebSocket和SSL加密的WebSocket(即同时支持ws和wss)?

  自从HTML5出来以后,使用WebSocket通信就变得火热起来,基于WebSocket开发的手机APP和手机游戏也越来越多。我的一些开发APP的朋友,开始使用WebSocket通信,后来觉得通信不够安全,想要对通信进行加密,于是自然而然地就想从ws升级到wss。在升级的过程中,就会存在旧的ws客户端与新的wss客户端同时连接到同一个服务器的情况。所以...

centos 配置vlan

centos 配置vlan https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/networking_guide/sec-configure_802_1q_vlan_tagging_using_the_command_line 在 Red Hat Ent...

基于windows server216自带的备份服务windows server backup

Windows Server Backup是系统自带的备份和恢复组件,和Windows Server 2003中的NTbackup类似。相对于其他第三方备份软件,Windows Server Backup由于是系统自带组件,不需要额外购买授权,从而减少IT开支。注意:Windows Server Backup不支持备份到磁带。 Windows Server...

基于Unity的AR开发初探:发布AR应用到Android平台

本文接上一篇,介绍一下如何通过Unity发布第一个AR应用至Android平台,在Android手机上使用我们的第一个AR应用。 一、一些准备工作 1.1 准备Java JDK 这里选择的是JDK 1.8.x版本,可以从这里下载。 1.2 准备Android SDK 这里选择的是R24.1.x-Windows版本,可以从这里下载。 Note:为了减少配置的...

Django的Settings中Templates的路径设置

## mysite/mysite/settings.py## mysite是项目名TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templa...