Notes11用swagger开发rest,正则,linux命令sed/awk/grep,Websocket,DNS
Posted 码农编程录
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Notes11用swagger开发rest,正则,linux命令sed/awk/grep,Websocket,DNS相关的知识,希望对你有一定的参考价值。
文章目录
1.swagger:用来规范前端和后端统一接口管理
rest接口本身就是http的接口
,只不过rest接口一般满足一定的规范,这个规范下的http接口就叫rest接口。一般rest接口中http的get方法进行数据的查询,post增,put改
,delete删。rest接口文档需郑重去维护,于是出了很多rest接口文档标准
,最有名的就是swagger。
swagger官网:https://editor.swagger.io/。在右边界面中可直接调试,也可看接口的url以及作用是什么。但是自己去写左边yml文档
(YML文件是以数据为核心的,比传统的xml方式更简洁,可被支持YAML库的不同的编程语言程序导入)生成右边,不好记,推荐用工具:http://studio.restlet.com/。
在restlet官网中新建名为MYAPI接口,如下创建数据类型。
如下增加rest资源就是url请求相关内容。
如下为资源创建get方法。
如下定义返回的行头体。
如上操作会生成yml文档,复制粘贴进如下左边,如下点击后下载下来用idea打开,点击Swagger2SpringBoot.java启动run起来,启动起来并监听了一些路径(有一个/路径)。
如下浏览器输入localhost:8080(服务端)访问/路径,自动转到服务本地启动的一个辅助界面。
如下进行服务端配置,服务端代码的api目录就是controller所在的目录,修改如下重新运行。
点击上面GET里try it out发请求,如下Body有如上设置好的内容了。
2.正则:https://regex101.com/ (regular expression)
^
:整段字符串开头。
$
:整段字符串结束。
^[]$
:中括号内部可匹配一个
字符。
如下自己输入1,蓝色阴影则匹配。
\\d
:相等于[0- 9]
,中括号里是什么或什么。
\\D
:相等于[^0- 9]
,除了0到9外的任意字符。如下匹配 数字\\d 或
数字外任意字符\\D,也就是匹配任意字符。
\\w
:字母,数字或下划线,常用于互联网用户名的命名上。
如下两个等价。
如下两个等价。
如下两个等价。
如下没有匹配什么,只是说明红线是前面蓝色简化写法。
如下是邮箱的匹配规则。
2.1 组group:如上只想获取@前面的用户名,上面中括号,大括号都出现了,就差小括号
如下1就是组1。
如下first就是组名,右边是js语法,groups显示underfined因为没命名。
如上只是匹配到组,把组里内容拿出来,组还有一个用法是可以在当前正则中进行引用。
如下为什么不从下标0开始?
如下同上。
1.
如下是组的特殊结构:把组写后面。
2.
如下全是把组写前面。如下要找foo,但foo要在bar后面。
2.1
如下对AABC类型进行限定。
如上没有对后两个进行限定,需要后面两个
不能和前面两个
一样且后面两个
不能互相一样。
3.sed:替换,删除,管道
如下将逗号
替换为空格
。s表示替换,g表示全局,即行中所有匹配项都被替换。
^匹配行首,$匹配行尾,d删除空行或只包含空格的行。
sed常用于管道过滤,如下把x替换成y。
如下-r打开扩展正则,将逗号换成TAB。
4.awk:-F指定分隔符,-V设置变量
如下按逗号分隔并打印分割后的第三列和第四列。
如下BEGIN指定了处理文本之前需要执行的操作。END指定了处理完所有行之后所需要执行的操作。
如下按逗号分隔并打印最后一列内容。
如下分割后最后一列为空行,则不打印。即字段数>0打印。
如下-c统计个数,2是个数,不是序号。
sed
用于字符替换、删除、格式化操作,多用于修改配置文件和文本格式化(format,小文件操作)。
awk
用于结构化文本,对字段(像数据库中的字段)进行函数和运算操作,多用于文本分析和大文件处理。
5.grep:元字符就是\\d,\\D这些,是一种Perl风格正则
Perl正则:-P。扩展正则:-E。
如下.\\中的\\是转义符,.168
这样重复3次。
6.Websocket保证前端实时性:socket通常指tcp的socket,上来建立双向连接,有通道随意先后发送
http
:客户端主动发请求到服务端,服务端处理请求并响应给客户端,前提是客户端先发起请求,服务端才能发起响应,非常依赖客户端的主动性,有请求才有响应。
http 为短连接:客户端发送请求都需要服务器端回送响应.请求结束后,主动释放链接,因此为短连接。通常的做法是,不需要任何数据,也要保持每隔一段时间向服务器发送"保持连接"的请求。这样可以保证客户端在服务器端是"上线"状态。
Socket
:TCP 三次握手:握手过程中并不传输数据,在握手后服务器与客户端才开始传输数据,理想状态下,TCP 连接一旦建立,在通讯双方中的任何一方主动断开连接之前 TCP 连接会一直保持下去。
对 TCP/IP 协议的封装,Socket 只是个接口不是协议,通过 Socket 我们才能使用 TCP/IP 协议,创建 Socket 连接的时候,可以指定传输层协议,可以是 TCP 或者 UDP。
我们大多数用http方式,有时想用socket方式,所以html5后websocket应运而生。如下第一行连接,第二行注册消息事件。websocket应用场景
:服务端的一些状态变更需立即通知到客户端实时性,原来去实现实时性的方式是客户端轮询(每秒钟或几秒钟请求一次服务端看数据有没有变化,数据没变化不返回东西,数据发生变化,服务端会返回数据给客户端)。
但是有了websocket,服务端可主动通知客户端,这种时候就不再需要这种轮询了,因为轮询每秒请求的话会消耗带宽,大量运用在网页聊天室,股票等状态变更频繁场景。
7.DNS原理与域名的配置:域名作用是方便记忆,dns作用是将域名解析成ip等等
如下根dns服务器全球只有13个,根dns服务器可能也不知道baidu.com这域名对应的ip,但它一定知道 这个域名对应的ip,哪个dns服务器知道。
如下URL:https://www.baidu.com/..请求参数
。CAA:证书机构相关配置。TXT:特殊场景下用,如在某个服务下进行域名配置,但这服务要先确认你是否拥有这域名
(就会告诉你一个文本,你在域名控制台下配置域名和这个文本的映射并为TXT类型。之后这个服务会到这个域下进行验证,验证刚好得到的文本就是自己提供的文本的话确定了你确实是这域名的拥有者)。
如果你的服务机器是在国内的话,那最好在国内的云服务商购买域名并要备案
。国外购买不需要备案,购买完后需要自己配置。域名申请和购买:https://www.namecheap.com/,如下是已经购买了。
如下点击Advanced DNS进行手动配置,点击后如下所示:第二列Host指域名前缀,@符号指没有前缀,TTL刷新时间即生效时间。Host列和Value列效果相同。
1.
如下都跳转到同一个页面。
2.
如下CName,跳转到同上页面。
3.
如下URL,跳转到百度。
以上是关于Notes11用swagger开发rest,正则,linux命令sed/awk/grep,Websocket,DNS的主要内容,如果未能解决你的问题,请参考以下文章