Tornado对接API基本流程

前言

对接API过程中的一些总结,写的比较简陋,
不过收获不少,深入了解了HTTP:

  • Web 客户端与服务器是如何通信的;
  • (表示 Web 内容的)资源来自何方;
  • Web 事务是怎样工作的;
  • HTTP 通信所使用的报文格式;
  • 底层 TCP 网络传输;

基本流程

image

① 用户GET请求访问页面

② handler中GET请求触发,从数据库中拿取需要呈现给用户的数据

info = self.db.get('select * from users where user_id=%s', user_id)

③ handler拿到数据render给html

self.render('a/b.html', info=info)

④ 用户看到信息

⑤ 用户输入一些数据点击提交,click按钮触发JS

$('#foo').on('click', function(){
    bar;
})

⑥ JS拿到刚刚传给HTML的数据和用户输入的数据

⑦ JS通过ajax POST的方法将这些数据传给handler

$.ajax({
    url: 'xxxxx',
    type: 'post',
    async: true,
    data: {
        'choices': choicesData
    }
}).done(function(data){
    if(data.ok){
        foo;
        }
    }else{
        alert('返回错误');
    }
}).error(function(){
    result = {valid: false, message:'系统错误,请刷新重试'};
});

⑧ handler的POST方法触发,调用内部写好的API,把这些数据交给API处理

⑨ API通过POST的方法把数据传给需要对接的服务器

⑩ 服务器处理好后,传给我们返回的JSON数据

⑪ API处理好JSON数据后传给handler

⑫ handler通过write方法把传回的JSON数据写给JS

⑬ JS将最终数据呈现出来