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

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

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

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

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

感谢大神

App接口设计原则-b的更多相关文章

  1. RESTful接口设计原则/最佳实践(学习笔记)

    RESTful接口设计原则/最佳实践(学习笔记) 原文地址:http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api 1 ...

  2. App接口设计

    关于APP接口设计 http://blog.csdn.net/gebitan505/article/details/37924711/

  3. 优秀的API接口设计原则及方法(转)

    一旦API发生变化,就可能对相关的调用者带来巨大的代价,用户需要排查所有调用的代码,需要调整所有与之相关的部分,这些工作对他们来说都是额外的.如果辛辛苦苦完成这些以后,还发现了相关的bug,那对用户的 ...

  4. RESTful接口设计原则和优点

    RESTful架构优点: 前后端分离,减少流量 安全问题集中在接口上,由于接受json格式,防止了注入型等安全问题 前端无关化,后端只负责数据处理,前端表现方式可以是任何前端语言(android,io ...

  5. 关于APP接口设计(转)

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

  6. 关于APP接口设计

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

  7. 关于APP接口设计 (转)

    转自:http://blog.csdn.net/gebitan505/article/details/37924711 1.效率:接口访问速度 PHP建议使用YAF框架. 最好使用JSON格式数据,因 ...

  8. 【APP UI 设计模式】(一)APP UI 设计原则和流程

    一.基本原则         1.用户体验原则UCD,以用户为中心去设计         2.设计模式是可重用的设计规范实现         3.反模式是糟糕设计的典型,极力避免使用         ...

  9. App接口设计之token的php实现

    为了保证移动端和服务端数据传输相对安全,需要对接口进行加密传输. 一.ttoken的设计目的:  因为APP端没有和PC端一样的session机制,所以无法判断用户是否登陆,以及无法保持用户状态,所以 ...

随机推荐

  1. Day 2 @ RSA Conference Asia Pacific & Japan 2016

    上午有两场summits,议题分别是: sum-w01: G2B: Cyber-Business in Myanmar, Indonesia and Thailand sum-w02: Achievi ...

  2. Android开发_Android数据的四种存储方式

    Android系统一共提供了四种数据存储方式.分别是:SharePreference.SQLite.Content Provider和File.由于Android系统中,数据基本都是私有的的,都是存放 ...

  3. [Node.js] Web Scraping with Pagination and Advanced Selectors

    When web scraping, you'll often want to get more than just one page of data. Xray supports paginatio ...

  4. JavaBean中DAO设计模式介绍(转)

    一.信息系统的开发架构 客户层-------显示层-------业务层---------数据层---------数据库 1.客户层:客户层就是客户端,简单的来说就是浏览器. 2.显示层:JSP/Ser ...

  5. C和指针 (pointers on C)——第四章:语句(上)

    第四章--语句(上) 总结总结!!! C没有布尔类型,所以在一些逻辑推断时候必须用整型表达式,零值为假,非零值为真. for比while把控制循环的表达式收集起来放在一个地方,以便寻找. do语句比w ...

  6. js监听用户的键盘敲击事件,兼容各大主流浏览器

    js监听用户的键盘敲击事件,兼容各大主流浏览器 <script type="text/javascript"> document.onkeydown = functio ...

  7. 查找字符串(C++实现)

    查找字符串(C++实现),不使用库函数: // SubString.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include < ...

  8. 上传jar包到nexus私服

    摘要 通过网页和maven两种方式,上传本地的jar到nexus私服,以及引用jar时,自动引用依赖 1通过网页上传 这种方法只是上传了jar包.通过maven引用当前jar,不能取得jar的依赖   ...

  9. codeforces 580D Kefa and Dishes(状压dp)

    题意:给定n个菜,每个菜都有一个价值,给定k个规则,每个规则描述吃菜的顺序:i j w,按照先吃i接着吃j,可以多增加w的价值.问如果吃m个菜,最大价值是多大.其中n<=18 思路:一看n这么小 ...

  10. Java递归流程

    递归二字顾名思义就是:递过去,归回来.所以我索性叫它做有借有还吧. 下面的例子由c而来: public class Main {                                publ ...