勿忘,须舍

  • 首页

  • 标签

  • 分类

  • 归档

  • python 随记

  • 关于

  • 搜索

Restful API 简述

发表于 2019-10-08

REST简述

REST的由来

REST最早是由Roy Fielding博士发表的论文中提到的,他也曾参与设计了HTTP协议。论文地址:http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm

REST的定义

REST 全称是Resource Representational State Transfer,即:资源在网络中以某种形式进行状态转移。

  • Resource:资源,即数据。

  • Representational:某种表现形式,比如用JSON,XML,JPEG等;

  • State Transfer:状态变化。通过HTTP动词实现。

REST 指的是一组架构约束条件和原则。如果一个架构符合REST的约束条件和原则,我们就称它为RESTful架构。符合REST设计风格的Web API称为RESTful API。

简单来说REST是一种系统架构设计风格(而非标准),一种分布式系统的应用层解决方案。REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。

REST的目的

Client和Server端进一步解耦。

Restful的理解

一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

RESTful架构,就是目前最流行的一种互联网软件架构。它结构清晰、符合标准、易于理解、扩展方便,所以正得到越来越多网站的采用。

RESTful 是目前最流行的 API 设计规范,用于 Web 数据接口的设计。传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网络则主要研究系统之间的通信。在当今的互联网应用的前端展示媒介很丰富。有手机、有平板电脑还有PC以及其他的展示媒介。那么这些前端接收到的用户请求统一由一个后台来处理并返回给不同的前端肯定是最科学和最经济的方式,RESTful API就是一套协议来规范多种形式的前端和同一个后台的交互方式.

REST的设计原则

  1. 客户端-服务器:通过将用户UI与数据存储分开,我们可以简化服务器组件来提高跨多个平台的用户界面的可移植性并提高可伸缩性。 它可以比表现成前后端分离的思想。
  2. 无状态:从客户端到服务器的每个请求都必须包含理解请求所需的所有信息,并且不能利用服务器上任何存储的上下文。 这表示你应该尽可能的避免使用session,由客户端自己标识会话状态。(token)
  3. 规范接口:REST接口约束定义:资源识别; 请求动作; 响应信息; 它表示通过uri标出你要操作的资源,通过请求动作(http method)标识要执行的操作,通过返回的状态码来表示这次请求的执行结果。
  4. 可缓存: 缓存约束要求将对请求的响应中的数据隐式或显式标记为可缓存或不可缓存。如果响应是可缓存的,则客户端缓存有权重用该响应数据以用于以后的等效请求。 它表示get请求响应头中应该表示有是否可缓存的头(Cache-Control)

Reference

浅谈Restful Api的知识

了解restful api

10个有关RESTful API良好设计的最佳实践

python 遍历目录获得所有文件

发表于 2019-10-08 分类于 python , tips

问题

给定一个本地路径,获得当前路径及其子路径下的所有文件。

实现

通过 os.walk 方法实现。

1
2
3
4
5
6
7
8
9
def traverse_directory(loc_path):
file_list = []
for dirpath, dirnames, filenames in os.walk(loc_path):
file_list += [os.path.join(dirpath, filename) for filename in filenames]
return file_list

if __name__ == "__main__":
local_path = '/home/path'
traverse_directory(local_path)

python factions module

发表于 2019-10-06 分类于 python , module

简介

python 中处理分数的模块。

源代码 Lib/fractions.py

阅读全文 »

python 计算当前月份的日期范围

发表于 2019-10-06 分类于 python , tips

问题

你的代码需要在当前月份中循环每一天,想找到一个计算这个日期范围的高效方法。

阅读全文 »

python 在字符串中处理html和xml

发表于 2019-09-29 分类于 python , tips

问题

你想将HTML或者XML实体如 &entity; 或 &#code; 替换为对应的文本。 再者,你需要转换文本中特定的字符(比如<, >, 或 &)。

阅读全文 »

python 字符串令牌解析

发表于 2019-09-29 分类于 python , tips

问题

你有一个字符串,想从左至右将其解析为一个令牌流。

阅读全文 »

python textwrap module

发表于 2019-09-27 分类于 python , module

作用

通过调整换行符在段落中出现的位置来格式化文本。

源码: Lib/textwrap.py

阅读全文 »

python format用法

发表于 2019-09-26 分类于 python , tips

作用

str.format() 方法通过字符串中的花括号 {} 来识别替换字段 replacement field,从而完成字符串的格式化。

阅读全文 »

python 审查清理文本字符串

发表于 2019-09-24 分类于 python , tips

问题

一些无聊的幼稚黑客在你的网站页面表单中输入文本”pýtĥöñ”,然后你想将这些字符清理掉。

阅读全文 »

python unicodedata module

发表于 2019-09-23 分类于 python , module

简介

处理Unicode字符数据库(UCD)的模块,UCD为所有Unicode字符定义字符属性。

UCD是Unicode字符数据库(Unicode Character DataBase)的缩写。

UCD由一些描述Unicode字符属性和内部关系的纯文本或html文件组成。

UCD中的文本文件大都是适合于程序分析的Unicode相关数据。其中的html文件解释了数据库的组织,数据的格式和含义。

阅读全文 »
1…91011…16
Mr Wang

Mr Wang

行动了才会有故事,说出来才会有结果。
154 日志
59 分类
43 标签
RSS
GitHub E-Mail Weibo
© 2022 Mr Wang
总访问量次 | 总访客数人