REST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移。 它首次出现在2000年Roy Fielding的博士论文中,Roy Fielding是HTTP规范的主要编写者之一。 他在论文中提到:”我这篇文章的写作目的,就是想在符合架构原理的前提下,理解和评估以网络为基础的应用软件的架构设计,得到一个功能强、性能好、适宜通信的架构。REST指的是一组架构约束条件和原则。” 如果一个架构符合REST的约束条件和原则,我们就称它为RESTful架构。 REST本身并没有创造新的技术、组件或服务,而隐藏在RESTful背后的理念就是使用Web的现有特征和能力, 更好地使用现有Web标准中的一些准则和约束。虽然REST本身受Web技术的影响很深, 但是理论上REST架构风格并不是绑定在HTTP上,只不过目前HTTP是唯一与REST相关的实例。 所以我们这里描述的REST也是通过HTTP实现的REST。
以上内容来自网络,如有侵权,告知立刻删除。
更加详细的说明信息请移步链接
我的一些看法
REST最重要的有两点:
1.请求状态
分为GET(获取)、PUT(更新)、POST(新建)、DELETE(删除)
2.资源url的命名
GET *****/1.0/Good/1?name=tuox 参数在url上面 1为第一页 问号后面为具体的过滤条件
PUT *****/1.0/Good/1 参数在form表单中 1为更新的id form中是具体的详细信息
POST *****/1.0/Good 参数在form表单中 form中是具体的详细信息
DELETE *****/1.0/Good/6 参数在url上面 6是需要删除的id
命名的一些规范:1.版本号 2.功能 3.标识 4.过滤
flask下的RESTful API
讲了这么多,我们进入正题。flask是一个非常轻量级的框架,非常适合写api。官方网站也扩展的相应的api框架-flask_restful。
它就是我们今天的主角,下面就主要的介绍一下它的用法以及注意点。 ***
flask_restful使用非常简单,首先我们来看一下以下的代码。
from flask import Flask
from flask.ext import restful
app = Flask(__name__)
api = restful.Api(app)
class HelloWorld(restful.Resource):
def get(self):
'''
do something
'''
return {'hello': 'world'}
def put(self, id):
'''
do something
'''
return {'code': 1, 'msg': 'success'}
def psot(self):
'''
do something
'''
return {'code': 1, 'msg': 'success'}
def delete(self):
'''
do something
'''
return {'code': 1, 'msg': 'success'}
api.add_resource(HelloWorld, '/welcome', '/welcome/int:id')
if __name__ == '__main__':
app.run()
这段代码包含了一些简单的例子。
1.创建一个flask应用
2.将flask应用注册成restful-api
3.创建处理路由的类
4.注册路由
5.注册脚本启动文件
说到这里相信大家已经对flask_restful简单优雅的写法深深的吸引,只要几行代码就可以实现一个非常规范的api,特别容易上手。
其实flask还有很多非常有用的api,比如自定义输出结果、自定义参数获取等。 ***
不过我们真实的项目中代码可不能这么写,需要来点分级。
下面我介绍下项目的主要结构。
myapi/
__init__.py
app.py # 这个文件主要是包含你的app以及路由规则
resources/
__init__.py
foo.py # 包含所有/Foo下的方法
bar.py # 包含所有/Bar下的方法
common/
__init__.py
util.py # 一些通用的使用方法 ***
更多的用法,大家可以看下flask_restful的官网 链接
源码地址
说了这么多,大家肯定想感受一下它的具体用法。我写了一个demo,代码放在github上面。链接
总结
炎炎夏日,适合在家做点吃的,玩点游戏,看点电影,写点代码。
如果你想交流探讨,随时欢迎~。