• App接口设计原则-b


    1、记住密码不是真的让你记住密码,这里仅仅指的是一种自动登录的手段。不管在任何地方,明文存储的密码都是安全隐患,是必须尽量避免的。你可以采用某种方式对用户名、密码以及时间戳(重要)进行签名,再次登录时使用签名后的数据进行登录。

    2、客户端要包含超时机制,见过不止一次的服务端设计是通过客户端发送的userid来区分用户的。对此我真的已经无力吐槽了。最简单的办法是用session来记录用户状态。当然,考虑到客户端的特性,用户可能好几天都没有关闭一次,必须配合自动登录机制来保证客户端的在线。

    3、接口请求成功或失败,需要有明确的标识符来表示。并且对错误原因进行描述。同时因为客户端可能是多语言的,错误原因应该设计为errorCode,由客户端根据errorCode来显示成对应的语言。

    4、errorCode应该具有唯一性,例如登录超时使用10001,请求任意接口超时时都应该返回10001。方便客户端统一处理。

    5、接口设计应统一,不能出现在登录接口中用户名称为username,获取用户详情接口变成nickname的情况。客户端与服务端尽量采用相同的业务模型划分。接口中属性应按照业务模型的归属关系分层。 
    我们来看看下面两个接口 
    这里写图片描述 
    因为两个接口中都包含人物对象,则人物的属性名应该是相同的。 
    再如下图是对同一个接口的两种设计 
    这里写图片描述 
    左侧这个是符合我们的原则的,而右边不符合。我们并不是说右边的设计不好,只是左边更加符合客户端MVC的划分。因为作者本身也是一个“人物”的业务模型,当我们点击作者头像的时候,应该进入该作者的简介。这个简介界面与我在好友列表中进入的是同一个界面。从界面初始化参数上来看,我们只需要把“人物”模型传递进去就可以了。

    感谢大神

  • 相关阅读:
    根据excel的文件的路径提取其中表的数据到DataSet中 .
    查询SQL Server数据库中的用户表的数量的问题
    C#获取键盘和鼠标操作的时间的类
    使用消息来处理多线程程序中的一些问题
    多线程程序写日志时遇到加锁的问题
    android之横向滚动图
    android listview的一些设置
    android之异步任务
    android之隐式intent调用
    android之广播
  • 原文地址:https://www.cnblogs.com/isItOk/p/5648329.html
Copyright © 2020-2023  润新知