• 0755-82538016
  • 0755-82560826
  • 深圳网站建设_APP小程序开发_博纳网络

    • 网站建设案例
      • ";

        营销网站建设

        全网营销网站

        高端网站建设

        商城网站建设

        外贸网站建设

        小程序开发

        区块链开发

        物联网项目开发

        定制app开发

        在线教育网站

        速成网站建设

        服装网站建设

        餐饮网站建设

        珠宝首饰网站

        机械制造网站

        文化旅游网站

        家装建材网站

        美容化妆品网站

        数码产品网站

        模板案例库

        联系电话:0755-82560826 82538016 82560635邮箱:qin@198bona.com地址:深圳市福田区皇岗路5007神采苑402栋610
    • 网站推广
      • ";

        网站优化基础

        建站优化

        网站优化

        营销推广

        整站优化

        推广帮助

        谷歌搜索

        推广方案

        推广套餐

        推广技巧

        百度排名

        巧用微博推广

        直播视频网站推广法

        微信推广网站方法

        网站外链推广

        公共微信号推广

        网站优化闲谈

        常见问题

        公司资讯

        联系电话:0755-82560826 82538016 82560635邮箱:qin@198bona.com地址:深圳市福田区皇岗路5007神采苑402栋610
    • 网站制作资讯
      • ";

        网站制作

        外贸网站建设

        网站设计

        网站代运营

        深圳网站建设专栏

        深圳小程序开发

        网站改版

        APP开发

        网站建设方案

        安全维护

        软件开发

        平台搭建

        建站行业资讯

        域名注册

        虚拟主机

        企业邮局

        国外主机

        VPS独享空间

        免备案香港服务器

        如何解析域名

        联系电话:0755-82560826 82538016 82560635邮箱:qin@198bona.com地址:深圳市福田区皇岗路5007神采苑402栋610
    • 网站报价
      • ";

        网站报价

        建站方案

        联系电话:0755-82560826 82538016 82560635邮箱:qin@198bona.com地址:深圳市福田区皇岗路5007神采苑402栋610
    • 公司动态
      • ";
        联系电话:0755-82560826 82538016 82560635邮箱:qin@198bona.com地址:深圳市福田区皇岗路5007神采苑402栋610
    • 关注博纳
      • ";

        网站制作精英团队

        网站建设公司愿景

        公司介绍

        主营业务

        博纳文化

        加入博纳

        联系电话:0755-82560826 82538016 82560635邮箱:qin@198bona.com地址:深圳市福田区皇岗路5007神采苑402栋610
    • 联系我们
      • ";

        网站建设公司联系方式

        网站建设、网站制作公司乘车路线

        联系电话:0755-82560826 82538016 82560635邮箱:qin@198bona.com地址:深圳市福田区皇岗路5007神采苑402栋610
      网站制作资讯

      当前位置:

        主页网站制作资讯APP开发APP开发关于api接口设计所需注意的十一条事项

      APP开发关于api接口设计所需注意的十一条事项

      发布时间:2019-02-14

      文章编辑:网站建设 文章来源:APP开发 浏览量:次

       APP开发怎样实现api接口的设计工作,深圳APP开发公司结合多年项目开发设计工作,归纳整理出如下十一条具体操作方法,在接口设计中要注意以下事项。
      (1)首先需要确定APP和服务器间用什么格式传输数据,常用的有两种:XML和JSON。下面使用了XML格式和JSON格式表示同样的信息进行比较:
      <?xmlversion="1.0"encoding="utf-8"?><country><name>中国</name><province><name>广东</name><citys><city>广州</city><city>深圳</city></citys>  </province><province><name>广西</name><citys><city>南宁</city><city>桂林</city></citys>  </province></country>以上是XML格式文件的数据。
      {"name":"中国","quantity":2,"provinces":[{"name":"广东","quantity":2,"citys":{"city":["广州","深圳"]}},{"name":"广西","quantity":2,"citys":{"city":["南宁","桂林"]}}
      ]}
      以上是JSON格式文件的数据。从上述示例可看出,XML文件中存在大量的描述信息,大大增加了网络传输的数据量;同样的内容用JSON格式传输的数据量比较少,相应的网络传输速度和数据解析速度也都快,所以首选JSON格式。JSON格式的字段类型值常用的有以下几种。Number:整数或浮点数。String:字符串。Boolean:true或false。上述三种属于基本类型。Array:数组,包含在方括号[]中。Object:对象,包含在大括号\'7b\'7d中。
      上述两种属于复合类型,其中可以包含各基本类型字段。示例如下:
      {//对象"name":"中国",//字符串"quantity":2,//整数"isAsia":true,//布尔类型"provinces":[//数组{"name":"广东","quantity":2,"citys":{"city":["广州","深圳"]}},{"name":"广西","quantity":2,"citys":{
      "city":["南宁","桂林"]}}]}
      (2)需要设计JSON数据的具体格式。APP发送请求(有非数组格式的具体参数),示例如下:
      {"params":{"username":"aaa","password":"123456"}}
      APP发送请求(有数组格式的具体参数),示例如下:
      {"params":{"products":[{"name":"可乐","quantity":1},{"name":"雪碧","quantity":2}]}}APP发送请求(无具体参数),示例如下:{"params":{}}服务器端处理成功后,返回给APP的数据(只返回操作状态,不返回数据),示例如下:
      {"code":800}服务器端处理成功后,返回给APP的数据(返回操作状态和非数组数据),示例如下:
      {"code":800"result":{"message":"订单提交成功"}}服务器端处理失败后,返回给APP的数据(只返回操作状态和出错提示),示例如下:{"code":800"result":{"products":[
      {"name":"可乐","quantity":1},{"name":"雪碧","quantity":2}]}}操作失败(只返回操作状态和出错提示),示例如下:{"code":801"result":{"message":"密码错误,请重新输入"}}在定义JSON中的字段名称时,要尽量短小,以减少网络传输的数据量。
      (3)服务器端采用的语言有Java这样的强类型语言,也有PHP这样的弱类型语言,弱类型语言对变量类型没有强类型语言那么严格,但Android和iOS开发使用的语言都是强类型的,导致APP端常会遇到变量类型出错的问题。如需要整型数据,结果服务器传的数字有小数;需要非字符串类型的数据,结果服务器传的数据是字符串等。为解决这类问题,在和服务器端定义字段的数据类型时,建议使用以下方案。在APP端涉及数学的加、减、乘、除或比较大小运算的字段,统一使用double类型。int和float类型可以算是double类型的子集,这样只要APP端使用double类型,无论服务器端返回的是int类型,还是float类型,都不会解析出错。布尔型的字段也使用double类型代替,服务器端返回1表示true,返回0表示false。
      不涉及数学的加、减、乘、除或比较大小运算且非布尔型的字段,统一使用字符串类型。字符串类型的适应性比较强,无论哪种类型的数据,都可以当字符串处理,解析的时候不容易出错。这样APP和服务器端交互,只使用了两种基本数据类型,大大减少了由于各种数据类型不兼容导致APP端数据解析出错的问题。
      (4)APP从服务器读取数据的时候,会遇到数据为空的情况,此时服务器端返回给APP的数据类型应该和数据不为空时的类型一致。如下所示:{"code":800"result":{"nikeName":""}}
      nikeName字段的类型是字符串,当其值为空时,应返回空字符串"",而不应返回null。{"code":800"result":{"products":[]}}products字段的类型是数组,当其值为空时,应返回空数组[],而不应返回null或其他类型的数据。
      (5)因为服务器端的接口代码可能会发生变化,所以在APP向服务器端发送请求时,最好把接口的版本号也带上,如下所示:{"version":1.0,"params":{"username":"aaa","password":"123456"
      }}
      以上JSON数据中,version字段的值表示当前使用接口的版本号为1.0。如果已经上线的旧APP中使用的接口版本是1.0,在上线后接口更新到1.1版本,而且不兼容1.0版本,用户有可能不更新APP,还是使用旧版本APP。服务器端接收到请求后,发现APP使用的接口版本是1.0,就可以调用旧接口处理APP请求。如果请求中不带版本号,遇到这种状况,就很难处理了。
      (6)APP常需要从服务器获取图片,但服务器存储的图片尺寸往往不完全符合APP需要,需要将图片放大或缩小,因为服务器的性能比手机高,所以最好是在服务器端按APP的需求处理图片,然后把处理过的图片发给APP。APP在发送获取图片的请求时,把所需图片的宽度和高度发给服务器,如采用GET方法,可以按以下方式。
      http://www.hello.com/getimage/2/width/100/hight/100服务器收到请求,就可先按APP要求的尺寸处理图片,再发给APP。当然也可以用POST方法实现,用JSON格式传递参数,示例如下:
      {"version":1.0,"params":{"imageId":2,"width":100,"hight":100}}
      (7)大多数APP和服务器交互时用HTTP协议,每向服务器发送一个请求都要先建立连接,传输数据后再断开连接。即使服务器端有连接池设计,连接池中容纳的
      连接个数也是有限制的。在设计接口时,APP每执行一个动作尽量做到只向服务器发送一次请求,减少APP发送请求的次数,从而减少APP和服务器建立连接和断开连接消耗的时间及资源,提高程序响应速度。
      (8)对于向APP返回数组数据的接口应设计支持分页操作,并提供参数以方便APP设置获取元素的起始位置和获取的个数。例如,数组中有100个元素,APP端第一次从第1个元素开始只获取10个元素,第二次从第11个元素开始只获取5个元素。在电商APP中读取商品列表和订单列表可以这样设计。获取商品列表的JSON数据如下所示:
      {"version":1.0,"params":{
      "categoryId":1,"offset":0,"limit":10}}其中categoryId表示读取哪一类别的商品列表,offset表示从商品列表中的第一个商品开始读取商品数据,limit表示读取10个商品数据。limit的数值也可以在服务器端设置,此时以服务器端的数值为准,APP传递的数值不起作用。
      (9)对于可能会变动的功能逻辑,尽量放在服务器端实现,而不是APP本地实现,这样后续的功能变更时修改服务器端的代码就可以了,不需要用户升级APP。例如,电商APP中商品的默认排序功能,在服务器端可以把商品按价格或销量排序后,再把数据传递给APP,APP端只负责显示就可以了。
      (10)APP端在使用服务器接口的时候,常会遇到从服务器传来的JSON数据类型和约定的不一致,导致APP解析出错的问题。APP遇到此类问题时往往会Crash,需要对此问题做特别处理,如下所示:try{//parseJson为解析从服务器返回的JSON数据的方法Tmodel=parseJson(jsonData);onSuccess(model);}catch(Exceptione){message="数据解析出错";onError(message);}开发AndroidAPP时,利用try…catch…机制可以有效防止APPCrash,并提示用户出现了什么问题。在开发阶段,APP应明确提示“数据解析出错”,这样有利于发现和解决问题。上线后,用户在使用APP的时候遇到这类问题,用户不一定理解具体含义,可换种方式提示。
      如图3-1所示,明确告知用户服务器端出现问题了,需要联系客服解决。图3-1开发阶段通常使用Debug版本,而线上版本是Release版本,利用编译选项可以实现不同版本显示不同的提示信息。
      (11)服务器端设计接口的时候,需要考虑到APP重复提交数据的情况。例如,APP和服务器的响应超时时间是10秒,服务器收到APP的请求后,在11秒内完成了处理,但此时APP会提示用户连接超时,用户往往会再次操作,APP就向服务器发起重复请求。好了,APP开发公司本文关于“APP开发关于api接口设计所需注意的十一条事项”的经验就分享到这里,谢谢关注,博纳网络再次提醒您,以上演示代码需要各位APP开发爱好者自行根据开发规则排列。
       
       

      当前文章链接:/construction/appkaifa/2219.html
      上一篇:AndroidAPP开发怎样设计点9图 下一篇:APP开发HTTP安全解决方案
      返回列表
      如果您觉得案例还不错请帮忙分享:

      [声明]本网转载网络媒体稿件是为了传播更多的信息,此类稿件不代表本网观点,本网不承担此类稿件侵权行为的连带责任。故此,如果您发现本网站的内容侵犯了您的版权,请您的相关内容发至此邮箱【qin@198bona.com 】,我们在确认后,会立即删除,保证您的版权。

      相关案例推荐

      • 英华卫厨商城网站建设案例

        英华卫厨商城网站建设案例

        商城门户

        英华卫厨商城网站建设案例

      • 浙江航民印染

        浙江航民印染

        企业网站

        浙江航民印染

      • 橙创科技

        橙创科技

        企业网站

        橙创科技

      资讯分类

      • 网站制作
      • 外贸网站建设
      • 网站设计
      • 网站代运营
      • 深圳网站建设专栏
      • 深圳小程序开发
      • 网站改版
      • APP开发
      • 网站建设方案
      • 安全维护
      • 软件开发
      • 平台搭建
      • 建站行业资讯
      • 域名注册
      • 虚拟主机
      • 企业邮局
      • 国外主机
      • VPS独享空间
      • 免备案香港服务器
      • 如何解析域名

      最新发布

      • 社区APP开发上线后影响用户使用的粘性有哪些?
      • 为什么说大健产业O2OAPP开发潜力无限
      • 网络公司对社区O2OAPP开发基本认识
      • 工业4.0时代怎样做好一个APP的开发工作?
      • APP开发公司分析APP应用开发下一个巨头在哪些领域?
      • APP电子商务平台开发前景如何?
      • 社交类型APP开发需要具备的五个必要条件
      • 社交类型APP平台开发使用小程序还是APP模式好?
      • 使用HTML语言开发APP商城可以吗?
      • 社区O2OAPP开发的方向选择

      相关资讯

      • APP网站制作流程以及栏目分布
      • 企业网站优化人员面对搜索引擎的困惑
      • 企业门户网站如何做好针对搜索引擎的优化工作
      • APP/PC购物商城网站如何做好产品图片的优化技巧
      • 网站软文内容以及网站外链存在的几种形式对网站有多大影响
      • 如何做好网站软文标题的描述更适合搜索引擎的需要?
      • 网站建设好后期出现被搜索引擎降权的几个主要因素
      • 小程序开发制作前途取决于市场,别被您的同行抢了先机
      • APP开发公司提醒您关注:电商平台要求商家“二选一”引多方不满 专家提建议
      • APP为什么会在我们的手机界面上变成僵尸图标?

      热门搜索

      • 网站开发
      • 小程序开发
      • 淘宝tTP公司
      • 公司网站制作
      • APP开发公司
      • 个人网站建设
      • 商业网站制作
      • 代运营网站
      • 移动网站建设
      • 网站建设

      Copyright © 2021 博纳网络 版权所有  粤ICP备17054727号

      • 🏠

        首页

      • 💬

        咨询

      • 📞

        通话

      • 📂

        案例

      • ⬆

        返回