本文将指导大家如何去创建企业通讯录app的服务端
除了获取图片,客户端与服务端唯一的交互就是获取最新数据,如果该用户不能获取数据(用户名密码错误、用户离职被删)则返回空。
1:典型的交互流程如下:
用户名与密码
app -----------------------------> 服务端
app <----------------------------- 服务端
json格式的通讯录
2:接下来讲讲json通讯录需要哪些属性。
一共需要7个,见下文。
{"UserName":"姓名","Company":"公司","Department":"部门","JobTitle":"职位","Phone":"手机号1","ShortPhone":"手机号2","AvatarURL":"头像地址"}
3:接下来给出服务端的具体实现参考
asp.net版:
为啥要拼接而不是使用框架序列化,是为了更高的性能,参考
private void getList(HttpContext context) { string userName = context.Request.QueryString["u"]; string password = context.Request.QueryString["p"]; if (string.IsNullOrEmpty(userName) || string.IsNullOrEmpty(password)) { context.Response.Write(""); return; } if (检查用户名密码是否可用(userName, password) == null) { context.Response.Write(""); return; } string sqlStr = @"你的sql语句"; StringBuilder sb = new StringBuilder(); using (SqlDataReader reader = (SqlDataReader)SqlHelper.ExecuteReader(sqlStr)) { while (reader.Read()) { sb.Append(",{"); sb.AppendFormat(""UserName":"{0}","Company":"{1}","Department":"{2}","JobTitle":"{3}","Phone":"{4}","ShortPhone":"{5}","AvatarURL":"{6}"", reader["UserName"], reader["Company"], reader["Department"], reader["JobTitle"], reader["Phone"], reader["ShortPhone"], reader["AvatarURL"]); sb.Append("}"); } } if (sb.Length > 0) { sb[0] = '['; sb.Append("]"); context.Response.Write(sb); } else context.Response.Write(""); }
如果你没有数据库,一个json文件也是可以滴。
简单nodejs版demo实现(需要安装restify)
var restify = require('restify'); var rf=require("fs"); var contactList=rf.readFileSync("json文件地址","utf-8"); function respond(req, res, next) { res.setHeader('content-type', 'text/plain'); if (req.params.name == "账户名" && req.params.pwd=="密码") { res.send(contactList); } else { res.send(''); }; } var server = restify.createServer(); server.get('/u/:name/:pwd', respond); server.listen(3900, function() { console.log('%s listening at %s', server.name, server.url); });
调用方式(自己改ip地址): http://192.168.1.1:3900/u/用户名/密码
4:如何做一个服务端,总结如下:
1:对客户端传递的账户密码进行验证,错误返回空,否则进行下步骤
2:sql获取数据库的用户信息
3:拼接成json格式返回