Python自动化开发学习-RESTful API

栏目: 编程工具 · 发布时间: 7年前

内容简介:RESTful API 是一种面向资源编程,也叫表征状态转移(英文:Representational State Transfer,简称REST)。认为网络上所有的东西都是资源,对资源的操作无非就是增删改查。比如有个资产的页面,URL是

RESTful API

RESTful API 是一种面向资源编程,也叫表征状态转移(英文:Representational State Transfer,简称REST)。

认为网络上所有的东西都是资源,对资源的操作无非就是增删改查。

传统的方法

比如有个资产的页面,URL是 www.example.com/asset 。要对它进行增删改查,可能使用不同的url来区分:

  • www.example.com/addAsset :增加资产,一般是POST方法。
  • www.example.com/delAsset :删除资产,一般是POST方法。
  • www.example.com/editAsset :修改资产,一般是POST方法。
  • www.example.com/showAsset :显示资产,一般是GET方法。也可能使用 www.example.com/asset 作为url

这里的url一般使用的都是动词,表示是一个动作。

RESTful API 的规则

RESTful API 用一个url代指一个资源,既然是资源,这个词要用名词。那么这个url就是 www.example.com/asset 。增删改查都是通过这个url实现的,通过不同的method实现不同的方法,常用的是下面几个方法:

  • GET(SELECT):从服务器取出资源(一项或多项)。
  • POST(CREATE):在服务器新建一个资源。
  • PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。
  • PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。
  • DELETE(DELETE):从服务器删除资源。

在django中,推荐使用CBV。当然FBV也不是不行。

RESTful API 设计指南

这篇貌似讲的很好,值得参考: http://www.ruanyifeng.com/blog/2014/05/restful_api.html

JsonResponse

使用API就会有很多序列化数据返回的操作。

之前当我们需要给前端返回序列化后的字符串时,往往都是先调用json.dumps()这个方法,然后再用HttpResponse()把字符串返回给前端。既然每次都要这么搞,于是django给我么封装了一个新方法,直接完成序列化和返回字符串。

JsonResponse这个类是HttpRespon的子类,通过它直接就可以把字典进行序列化并返回给前端。

>>> from django.http import JsonResponse
>>> response = JsonResponse({'foo': 'bar'})
>>> response.content
'{"foo": "bar"}'

默认只能传入一个字典,并且API要返回的数据应该也就是字典。但是如果一定要序列化一个其他的类型,比如列表,可以设置safe参数:

>>> response = JsonResponse([1, 2, 3], safe=False)

如果要自定义编码器,和json方法一样,通过下面的参数指定:

>>> response = JsonResponse(data, encoder=MyJSONEncoder)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Mastering Regular Expressions, Second Edition

Mastering Regular Expressions, Second Edition

Jeffrey E F Friedl / O'Reilly Media / 2002-07-15 / USD 39.95

Regular expressions are an extremely powerful tool for manipulating text and data. They have spread like wildfire in recent years, now offered as standard features in Perl, Java, VB.NET and C# (and an......一起来看看 《Mastering Regular Expressions, Second Edition》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具