Restful levels&HATEOAS:java
什么是RESTful:mysql
REST这个词,是Roy Thomas Fielding在他2000年的博士论文中提出的。翻译过来就是"表现层状态转化。”Fielding在论文中将REST定位为“分布式超媒体应用(Distributed Hypermedia System)”的架构风格,它在文中提到一个名为“HATEOAS(Hypermedia as the engine of application state)”的概念。git
什么是HATEOAS:github
{"link": { "rel": "collection https://www.example.com/zoos", "href": "https://api.example.com/zoos", "title": "List of zoos", "type": "application/vnd.yourformat+json" }}
上面代码表示,文档中有一个link属性,用户读取这个属性就知道下一步该调用什么API了。rel表示这个API与当前网址的关系(collection关系,并给出该collection的网址),href表示API的路径,title表示API的标题,type表示返回类型。
Hypermedia API的设计被称为HATEOAS。Github的API就是这种设计,访问api.github.com会获得一个全部可用API的网址列表。spring
{
"current_user_url": "https://api.github.com/user", "authorizations_url": "https://api.github.com/authorizations", // ... }
从上面能够看到,若是想获取当前用户的信息,应该去访问api.github.com/user,而后就获得了下面结果。sql
{
"message": "Requires authentication", "documentation_url": "https://developer.github.com/v3" }
层次的意义:数据库
Level 1经过使用分而治之来解决处理复杂性的问题,将大型服务端点分解为多个资源。json
Level 2引入了一组标准动词,以便咱们以相同的方式处理相似的状况,消除没必要要的变化。canvas
Level 3引入了可发现性,提供了一种使协议更加自我记录的方法。api
什么是LDAP?
(一)在介绍什么是LDAP以前,咱们先来复习一个东西:“什么是目录服务?”
1. 目录服务是一个特殊的数据库,用来保存描述性的、基于属性的详细信息,支持过滤功能。
2. 是动态的,灵活的,易扩展的。
如:人员组织管理,电话簿,地址簿。
(二)了解完目录服务后,咱们再来看看LDAP的介绍:
LDAP(Light Directory Access Portocol),它是基于X.500标准的轻量级目录访问协议。
目录是一个为查询、浏览和搜索而优化的数据库,它成树状结构组织数据,相似文件目录同样。
目录数据库和关系数据库不一样,它有优异的读性能,但写性能差,而且没有事务处理、回滚等复杂功能,不适于存储修改频繁的数据。因此目录天生是用来查询的,就好象它的名字同样。
LDAP目录服务是由目录数据库和一套访问协议组成的系统。
优点:
LDAP是开放的Internet标准,支持跨平台的Internet协议,在业界中获得普遍承认的,而且市场上或者开源社区上的大多产品都加入了对LDAP的支持,所以对于这类系统,不需单独定制,只须要经过LDAP作简单的配置就能够与服务器作认证交互。“简单粗暴”,能够大大下降重复开发和对接的成本。
LDAP目录树概念:
1. 目录树:在一个目录服务系统中,整个目录信息集能够表示为一个目录信息树,树中的每一个节点是一个条目。
2. 条目:每一个条目就是一条记录,每一个条目有本身的惟一可区别的名称(DN)。
3. 对象类:与某个实体类型对应的一组属性,对象类是能够继承的,这样父类的必须属性也会被继承下来。
4. 属性:描述条目的某个方面的信息,一个属性由一个属性类型和一个或多个属性值组成,属性有必须属性和非必须属性
spring history:
2004年 Spring Framework 1.0 final
正式问世。
1.在Spring1.x时代,都是经过xml文件配置bean,随着项目的不断扩大,须要将xml配置分放到不一样的配置文件中,须要频繁的在java类和xml配置文件中切换。
2.随着JDK 1.5带来的注解支持,Spring2.x可使用注解对Bean进行申明和注入,大大的减小了xml配置文件,同时也大大简化了项目的开发。
3.从Spring3.x开始提供了Java配置方式,使用Java配置方式能够更好的理解你配置的Bean,如今咱们就处于这个时代,而且Spring4.x和Spring boot都推荐使用java配置的方式。
Java配置是Spring4.x推荐的配置方式,能够彻底替代xml配置。
(Spring的Java配置方式是经过 @Configuration 和 @Bean 这两个注解实现的:
一、@Configuration 做用于类上,至关于一个xml配置文件;
二、@Bean 做用于方法上,至关于xml配置中的<bean>;)
CORS是什么:
CORS(Cross-Origin Resource Sharing 跨源资源共享),当一个请求url的协议、域名、端口三者之间任意一与当前页面地址不一样即为跨域。
例如最多见的,在一个域名下的网页中,调用另外一个域名中的资源。
出于安全缘由,浏览器限制从脚本内发起的跨源HTTP请求。(并不必定是浏览器限制了发起跨站请求,也多是跨站请求能够正常发起,可是返回结果被浏览器拦截了。)
跨域资源共享( CORS )机制容许 Web 应用服务器进行跨域访问控制,从而使跨域数据传输得以安全进行。现代浏览器支持在 API 容器中(例如 XMLHttpRequest
或 Fetch )使用 CORS,以下降跨域 HTTP 请求所带来的风险。
CORS的做用:
为了改善网络应用程序,开发人员要求浏览器供应商容许跨域请求。跨域请求主要用于:
调用XMLHttpRequest或fetchAPI经过跨站点方式访问资源
网络字体,例如Bootstrap(经过CSS使用@font-face 跨域调用字体)
经过canvas标签,绘制图表和视频。
什么状况下须要 CORS:
跨域资源共享标准( cross-origin sharing standard )容许在下列场景中使用跨域 HTTP 请求:
由 XMLHttpRequest 或 Fetch 发起的跨域 HTTP 请求。
Web 字体 (CSS 中经过 @font-face 使用跨域字体资源), 所以,网站就能够发布 TrueType 字体资源,并只容许已受权网站进行跨站调用。
WebGL 贴图
使用 drawImage 将 Images/video 画面绘制到 canvas
样式表(使用 CSSOM)
CORS实现:
CORS也有一些限制,两种模型能够实现:
1.转到https://dev.mysql.com/downloads/repo/apt/上的MySQL APT存储库的下载页面,
选择并下载适用于Linux发行版的发行包的下载路径 ,
使用如下命令下载:
1
|
wget https:
//dev
.mysql.com
/get/mysql-apt-config_0
.8.12-1_all.deb
|
2.使用如下命令安装下载的发行包,替换 version-specific-package-name
为下载的包的名称(若是未在包所在的文件夹中运行命令,则以其路径开头):
1
|
sudo
dpkg -i
/PATH/version-specific-package-name
.deb
|
个人在当前文件下运行的是如下命令:
1
|
sudo
dpkg -i mysql-apt-config_0.8.12-1_all.deb
|
注:中间弹窗直接↓到点”OK“
3.使用如下命令从MySQL APT存储库更新包信息(此步骤是必需的):
1
|
sudo
apt-get update
|
1
|
sudo
apt-get
install
mysql-server
|
注:
其中两个弹窗
第一个是确认密码(设置数据库密码)
另外一个是选择加密方式,工具较新选第一个,较老选第二个
下载时间略长稍做等待,到这就安装完成啦
开放远程访问,以链接可视化图形界面
1.链接到数据库
1
|
mysql -u root -p
|
输入密码
2.查看数据库会看到有一个mysql
1
|
show databases;
|
3.选择当前使用数据库为mysql
1
|
use mysql;
|
4.查看权限
1
|
select
host,
user
, authentication_string, plugin
from
user
;
|
5.更改加密方式
******是数据库密码
1
|
ALTER
USER
'root'
@
'localhost'
IDENTIFIED
WITH
mysql_native_password
BY
'******'
;
|
1
|
grant
all
on
*.*
to
'root'
@
'%'
;
|
7.执行刷新权限
1
|
flush
privileges
;
|
另有一个update的方式可参考https://blog.csdn.net/qq_40147863/article/details/86485439?tdsourcetag=s_pctim_aiomsg
update对表结构直接修改若是把%写错成/,就会形成root帐户就登录不了了,使用需谨慎
所以咱们通常使用mysql里面的命令