从零开发一款APP 一、Java Web后端注册接口的设计

从今天开始,我将带着大家从零开发一款运动类的Android APP,包括后端的建设,后端我们使用Java Web的Servlet来实现,个人服务器使用Tomcat,数据库采用MySql。

因为我们是前后端都是自己设计,所以在设计接口时,前端和后端再也不用相爱相杀了,一切都是我们自己来定。


一、 逻辑设计:

  我们今天先设计一下注册的接口,设计接口,当然就是要先考虑需要实现样的功能。客户端注册时,需要将获取的用户名和密码以及昵称通过post方式来交给服务器,当然,后期我们需要给所有的请求内容都加上加密的处理,不能让中间人直接获取到明文密码。

   服务器端在获取到用户名和密码以及昵称时,需要作出以下判断,先判断用户名和昵称是否数据库中有重复,如果没有重复,那么才进行写入操作。如果有重复,那么返回相应的错误码。


二、数据库设计:

  逻辑设计完成之后,我们需要设计用户表tal_user,通过上面的需求,我们至少知道有以下四个字段,一为用户的id,二为用户的userName,三为用户的passWord,四为用户的nickName。但是,我们还需要一个字段,那就是用户的token,用户token的作用很大,它能完成很多password不能完成的任务。这里先介绍一下token的用法:

  token可以看成服务端生成了一个用户的临时id,这个临时id在用户表中必须是唯一的,它能唯一标识一个用户。这样,用户登录后,服务器端生成一个token,然后返回给客户端,客户端每次可以使用此token来进行获取数据,这样,每次获取数据都不用携带password来进行验证了,保证了用户的安全。二是因为每次用户登录都是新生成一个token替换原先的旧token,这样,原先在其他设备登录的用户就会下线,这样,就能限制用户只能在一个设备上进行登录(现在大部分APP都是这样设计)。

  所以,用户表中还需要有一个token字段。

  下面为用户表创建的sql语句:

  create table tal_user(
id INT(11) unsigned not null  auto_increment,
name varchar(50) not null unique,
password varchar(50) not null,
nickname varchar(50) not null,
token varchar(50),
primary key(id)
  ) ENGINE=InnoDB DEFAULT CHARSET=UTF8


三、接口规范:

  在设计好数据库后,服务器端需要设计客户端访问的标准:

  1、请求标准:
   url为 : http://localhost:8080/Sport/Registerbody为 {c:{"uname"=xxx,"upwd"=xxx,"nkname"=xxx}} //之所以要将所有的数据写到key为c对应的value中,是因为这样方便我们对所有的数据进行加密,加密之后,c对应的就是加密之后的数据,这时候服务器就可以进行整体解密。

  2、返回标准:

   2.1、注册成功
    {result:0}
   2.2、重复用户名:
    {result:1}
  2.3、重复昵称:
   {result:2}
  2.4、其它错误:
   {result:100}


今天就先设计好接口,下一个博客将会讲‘后端注册接口的设计’。
现在这个后端的登陆和注册接口已经完成,代码在   服务器端代码github地址   。Android端的代码也写好了登陆、注册的界面,登陆的功能也已经实现。其地址为   Android端代码github地址  。欢迎大家star 。

下一篇已经写好,链接为: 从零开发一款APP 二、Java Web后端注册接口的实现

 

你可能感兴趣的:(android,java,web)