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

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

最近一段时间一直在做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格式如下:

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

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

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

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

POST的请求如下:

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

3.文档规范

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

3.1 请求示例:

3.2 返回示例:

3.3 参数注释:

3.4 返回结果

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

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

4.接口调试

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

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

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

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

③ 请求 响应  返回值

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

至此,APP接口基础篇就讲解完毕,具体实践,请看一下节。
———————
作者:No.1117
来源:CSDN
原文:https://blog.csdn.net/qq_29920751/article/details/83271818
版权声明:本文为博主原创文章,转载请附上博文链接!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/112472.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Mybatis中传递多个参数的4种方法总结[通俗易懂]

    Mybatis中传递多个参数的4种方法总结[通俗易懂]方法1:顺序传参法#{}里面的数字代表你传入参数的顺序。这种方法不建议使用,sql层表达不直观,且一旦顺序调整容易出错。方法2:@Param注解传参法#{}里面的名称对应的是注解 @Param括号里面修饰的名称。这种方法在参数不多的情况还是比较直观的,推荐使用。方法3:Map传参法#{}里面的名称对应的是 Map里面的key名称。这种方法适合传递多个参数…

    2022年6月13日
    41
  • ACE_Message_Queue和spawn实现(生产者/消费者)(V2.00)

    ACE_Message_Queue和spawn实现(生产者/消费者)(V2.00)

    2022年2月7日
    45
  • Java中获取时间戳

    Java中获取时间戳**Java语言中关于三种时间戳的获取之心得**最近项目开发过程中发现了项目中获取时间戳的业务。而获取时间戳有以下三种方式,首先先声明推荐使用System类来获取时间戳,下面一起看一看三种方式。1.System.currentTimeMillis()System类中的currentTimeMillis()方法是三种方式中效率最好的,运行时间最短。开发中如果设计到效率问题,推荐使用此种方式获取。System.currentTimeMillis()2.newDate().getTime()除

    2022年5月3日
    38
  • gis可视化的方法_gis可视化分析

    gis可视化的方法_gis可视化分析前言从去年开始无脑接触Cesium三维GIS可视化,入坑之后一直到到现在,其实已经写了多个项目了,中间也遇到了很多坑点,很早就想分享其中所获了,只是觉得不太专业而且没有太多时间,…

    2022年9月1日
    3
  • dm268_实时的意思

    dm268_实时的意思最近正好又用到DM368开发板,就将之前做的编解码的项目总结一下。话说一年多没碰,之前做的笔记全忘记是个什么鬼了。还好整理了一下出图像了。不过再看看做的这个东西,真是够渣的,只能作为参考了。项目效果就是,编码encode然后通过rtsp传输在VLC上实时播放。用的是sensor是 MT9P031。一、内核配置让其支持MT9P031二、硬件设计错误排查启动信息错误,无法检测到MT9

    2022年8月13日
    3
  • java检验数组重复_java – 如何遍历数组并检查重复项?「建议收藏」

    java检验数组重复_java – 如何遍历数组并检查重复项?「建议收藏」您可以使用嵌套循环遍历数组以查看新输入是否存在.在函数中执行此操作会更好.此外,在执行此操作时,您需要确保您不在第一个元素,否则您将获得空指针异常.for(inti=0;i<=stringArray.length;i++){booleanisInArray=false;System.out.println(“\nEnterastring”);Stringinpu…

    2022年9月15日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号