淘淘商城——单点登录接口文档分析

在工作当中,开发文档是我们开发人员最重要的开发指南,对开发文档一定要认真研读,不可错过任何重要信息,我们现在学单点登录(SSO)也需要学习下开发文档。
我们先来看文档的第一个接口(注册接口):检查数据是否可用,如下图所示。文档中明确地给出了请求的类型是GET请求,URL地址也给我们规定好了,http://sso.taotao.com是域名,user/check/代表检查用户合法性。{param}/{type}是指要检查的参数及类型,param是可选参数,可以分别代表username、phone、email,当param代表username时type的值传1,当param代表phone时type的值传2,当param代表email时type的值传3。可选参数callback可以用于支持跨域解决js请求的问题(这个我们后面会学,不急)。返回值参数都给我们定好了,status代表状态码,msg代表返回的消息,data代表用户所传参数是否可用,我们最常用的TaotaoResult便刚好满足返回值的条件。
这里写图片描述
http请求肯定是在客户端写的,而客户端是需要服务端接口支撑的,现在我们便实现服务层接口开发及发布服务。
我们首先来看下数据来源,我们所要检查的用户数据都存储在tb_user表中,我们检查一下用户名、电话、邮箱是否合法,如果在用户表中已经有了,那么就是非法的了,如果用户表中没有相同记录,那么就合法。由于是单表操作,因此我们使用逆向工程生成的dao层代码即可。
这里写图片描述
接下来我们就要编写Service层的代码了。我们在UserRegisterService接口中编写方法——TaotaoResult checkUserInfo(String param, int type);,如下图所示。
这里写图片描述
之后我们在taotao-sso-service工程中编写UserRegisterService接口的UserRegisterServiceImpl实现类,如下图所示。
这里写图片描述
为方便大家复制,现将UserRegisterServiceImpl实现类的代码给出。

/**
 * 用户注册处理Service
 * <p>Title: UserRegisterServiceImpl</p>
 * <p>Description: </p>
 * <p>Company: www.itcast.cn</p> 
 * @version 1.0
 */
@Service
public class UserRegisterServiceImpl implements UserRegisterService {

    @Autowired
    private TbUserMapper userMapper;

    @Override
    public TaotaoResult checkUserInfo(String param, int type) {
        TbUserExample example = new TbUserExample();
        Criteria criteria = example.createCriteria();
        // 判断要校验的数据类型,来设置不同的查询条件
        // 1、2、3分别代表username、phone、email
        if (type == 1) {
            criteria.andUsernameEqualTo(param);
        } else if (type == 2) {
            criteria.andPhoneEqualTo(param);
        } else if (type == 3) {
            criteria.andEmailEqualTo(param);
        }
        // 执行查询
        List<TbUser> list = userMapper.selectByExample(example);
        if (list == null || list.size() == 0) {
            return TaotaoResult.ok(true);
        }
        return TaotaoResult.ok(false);
    }

}

下面我们便发布一下服务,如下图所示。即在applicationContext-service.xml配置文件中添加如下配置:

<!-- 声明需要暴露的服务接口 -->
<dubbo:service interface="com.taotao.sso.service.UserRegisterService" ref="userRegisterServiceImpl" timeout="300000" />

这里写图片描述
这样Service层的代码便编写完了。

猜你喜欢

转载自blog.csdn.net/a_blackmoon/article/details/80535645