Tornado是一种轻量的Python web框架,被广泛用于web项目开发中。下面,我们将介绍接口编写的步骤
handler文件,代表了控制http请求的入口,相当于MVC中的控制层:
import tornado
import json
class IndexHandler(tornado.web.RequestHandler):
def get(self):
response = {
"code": 200,
"state": "success",
"message": "请求成功",
"payload": []
}
return self.write(json.dumps(response, ensure_ascii=False))
服务启动文件,启动服务,分配8888的端口号:
import tornado
from handler.home import IndexHandler
urls = [(r"/index", IndexHandler)]
def main():
tornado.options.parse_command_line()
application = tornado.web.Application(handlers=urls)
http_server = tornado.httpserver.HTTPServer(application)
http_server.listen(8888)
print("Tornado服务已启动: http://localhost:8888")
tornado.ioloop.IOLoop.instance().start()
if __name__ == '__main__':
main()
请求接口返回:
在实际开发中,我们经常需要实现Restful Api,什么是Restful Api?
实际上就是通过GET
、POST
、PUT
、DELETE
来实现资源的增删改查操作。
例如:
增加一个用户,url: /api/v1/users 接口类型:POST
删除一个用户,url: /api/va/users 接口类型:DELETE
修改一个用户,url: /api/va/users 接口类型:PUT
查找一个用户,url: /api/v1/users 接口类型:GET
这里我们使用Tornado实现Restful风格的接口:
class UserHandler(tornado.web.RequestHandler):
def get(self):
"""
查询用户信息
"""
id = int(self.get_argument('id', '1'))
users = [{"id": 1, "name": "张三", "department": "财务部"}, {"id": 2, "name": "小丽", "department": "人力资源部"}]
payload = {}
for user in users:
if user['id'] == id:
payload = user
break
response = {
"code": 200,
"state": "success",
"message": "请求成功",
"payload": payload
}
return self.write(json.dumps(response, ensure_ascii=False))
查询数据:
修改数据:
添加数据:
删除数据:
特别注意规范的使用,一般来说,GET、DELETE都是在url上传参,而POST和PUT一般在请求体body上传参。
服务接口调用情况: