首页 > 其他分享 >RESTful规范 序列化和反序列化

RESTful规范 序列化和反序列化

时间:2023-02-01 00:56:08浏览次数:43  
标签:baidu 数据 RESTful 规范 api https 序列化 com

今日内容总结

restful规范

rest全程是Representational State Transfar 中文的意思是:表征想状态转移,它首次出现在2000年Roy Fielding的博士论文中

RESTful是一种定义Web API接口的设计风格,尤其适合用于前后端分离的应用模式中

1.数据的安全保障 通常使用
	https(http+ssl加密/tsl加密)协议
	url链接一般都采用https协议进行传输
    采用https协议 可以提高数据交互过程中的安全性
   
2.接口中带有api表示(路由中含有)
	https://api.lqz.com/books
	https://www.lqz.com/api/books
        
3.多版本共存 路径中带版本信息
	https://api.lqz.com/v1/login
	https://www.lqz.com/api/v2/login
    #v1和v2就可以表示的版本 假设版本更新也可以保证老版本的运行
    
4.数据即是资源,尽量使用名词 ,少出现动词(最核心的)
	接口一般都是完成前后台数据的交互,交互的数据我们称之为资源
    接口形式如下:
		https://api.baidu.com/users
		https://api.baidu.com/books
  	#特殊的接口是可以出现动词的 因为这些接口一般没有明确的资源,或者动词就是接口的核心含义
   
5.资源操作由请求方式决定(method)
	操作资源一般都会涉及增删改查,我们提供请求方式来标识增删改查的动作
	https://api.baidu.com/booksget请求:获取全部图书
	https://api.baidu.com/books/1get请求:获取主键为1的图书
	https://api.baidu.com/bookspost请求:新增一本图书
	https://api.baidu.com/books/1put请求:修改主键为1的图书
	https://api.baidu.com/books/1delete请求:删除主键为1的书
        
6.在请求地址中带过滤条件
	https://api.baidu.com/books?name=红&price=99
	可以理解为查询图书名称带红且价格为99的图书
    
7.响应状态码: 两套
    http效应状态码:
        """
       	1xx : 请求正在处理,

		2xx: 成功响应 见最多的就是

		200(成功)服务器已成功处理了请求。通常,这表示服务器提供

了请求的网页。

		201(已创建)请求成功并且服务器创建了新的资源。

		3xx: 重定向 301 永久重定向 302,307 临时重定向

		4xx: 客户端报错 403 没有权限 404 访问的地址不存在

		5xx: 服务端报错

		503(服务不可用)服务器目前无法使用(由于超载或停机维护)。通常,这只是暂时状态。
        """
	第二套:
    公司内部自己规定的 放在效应体中
    {"code":10000} 类似于这种
    
8.放回数据中带有错误信息

9.返回的结果应该符合以下规范(好多都不遵循这个)
	GET获取所有数据:返回资源对象的列表(数组)

    [{name:红楼梦,price:99},{name:红楼梦,price:99},{name:红楼梦,price:99}]
    GET单个对象:返回单个资源对象

    {name:红楼梦,price:99}
    POST新增对象:返回新生成的资源对象

    {name:西游记,price:99}
    PUT修改对象:返回完整的资源对象

    {name:西游记,price:100}
    DELETE删除对象:返回一个空文档
    
10.响应数据中带链接

序列化与反序列化

api接口开发,最核心最常见的一个过程就是序列化,所谓序列化就是把【数据转换格式】,序列化可以分两个阶段:

  • 序列化:把我们识别的数据转换成指定的格式提供给别人

    字典,列表 json格式存到文件中了

    例如:我们在django中获取到的数据默认是模型对象,但是模型对象数据无法直接提供给前端或者别的平台使用,所以我们需要把数据进行序列化,变成字符串或者json数据,提供给别人

    当我们读数据的时候,把数据从数据库中把数据读出来

    然后把数据序列化成json格式字符串然后发送到前端

    我们一般把读数据就是序列化操作

  • 反序列化:把别人提供的数据转换/还原成我们需要的格式

    例如:前端js提供的json数据,对于python来说就是字符串,我们需要进行反序列化,才能把数据保存到数据库中

    当我们写数据,前端发送过来的数据,前端发送的数据就是字符串

    我们需要把字符串反序列化成数据能保存的数据。

    我们一般把写数据就是反序列化

标签:baidu,数据,RESTful,规范,api,https,序列化,com
From: https://www.cnblogs.com/xiaochenxiangchangpang/p/17081260.html

相关文章