Blog week-6
1.
1)
0级-POX的沼泽
规则#1:连字符(-)应该用于提高URI的可读性-也称脊柱案例
规则#2:不应在URI中使用下划线(_)
规则#3:URI路径中应首选小写字母
规则#4:文件扩展名不应包含在URI中
1 级-资源
规则#1:URI中不应包含尾部正斜杠(/)
规则#2:必须使用正斜杠分隔符(/)来表示层次关系
规则#3:端点名称应该是单数还是复数?
2级-方法
2.1HTTP标头
常规标题 -这些标题字段对请求和响应消息都具有普遍适用性。
客户端请求标头 -这些标头字段仅适用于请求消息。
服务器响应标头- 这些标头字段仅适用于响应消息。
实体标头 -这些标头字段定义关于实体主体的元信息,或者,如果不存在BODY,则定义关于请求标识的资源。
2.2-查询参数
分页 有必要在API的早期设计阶段预测资源的分页。确实很难准确预测将返回的数据量的进展。因此,我们建议在调用客户端不提供资源时使用默认值对资源进行分页,例如,使用一系列值[0-25]。
过滤 过滤包括通过指定某些属性及其预期值来限制查询资源的数量。可以同时过滤多个属性上的集合,并为一个过滤属性允许多个值。
排序 对资源集合上的查询结果进行排序。sort参数应包含执行排序的属性的名称,用逗号分隔。
搜索 搜索是集合的子资源。因此,其结果将具有与资源和集合本身不同的格式。这允许我们添加与搜索相关的建议,更正和信息。
2.3-状态代码
200 - OK
一切正常
201 -
已创建已创建新资源
204 - 无内容
资源已成功删除,无响应正文
304 - NOT MODIFIED
返回的日期是缓存数据(数据未更改)
400 - BAD REQUEST
请求无效或无法提供。应在错误有效负载中解释确切的错误。例如“JSON无效”。
401 - UNAUTHORIZED
请求需要用户身份验证。
403 - FORBIDDEN
服务器理解该请求但拒绝它或不允许访问。
404 - 未找到
URI背后没有资源。
500 - INTERNAL SERVER ERROR
API开发人员应避免此错误。如果全局捕获博客中发生错误,则应记录堆栈跟踪,而不是作为响应返回。
3级-超媒体控制
内容谈判
Accept
谈判
Content-Type
谈判
HATEOAS:超媒体作为应用程序状态的传输引擎是REST应用程序体系结构的约束
3.1版本控制
头:自定义标题;接受标题
网址
2)
HATEOAS
HATEOAS(超媒体作为应用程序状态的引擎或超媒体驱动系统)是REST应用程序体系结构的约束。
超媒体驱动的站点通过在响应中包含超媒体链接,提供动态导航站点REST接口的信息。此功能不同于基于SOA的系统和WSDL驱动的接口。使用SOA,服务器和客户端通常必须访问可能在网站上,其他网站上或可能通过电子邮件分发的固定规范。
HATEOAS不强制要求任何一种格式,超媒体链接是HATEOAS的重点。
例如:表示一个对象,简单的JSON传统演示即为对象的相关客户数据,但数据并不会包含其相关其他数据的链接。而HATEOAS的响应中就包含了该对象所关联的所有链接,并将其直接显示出来(即是链接内的内容和链接)
HATEOAS还可以建立更复杂的关系,输出可以轻松的收集如何与服务进行交互,而不需要去查找规范或其他外部文档。
例如上个例子,即可显示其他相关的更多间接的内容,并提供了相关的链接。而根据Richardson成熟度模型,HATEOAS也被认为是REST的最终级别,这也意味着每个链接都被假定为实现GET,POST,PUT,DELETE(或子集)的标准REST动词。所以综上所述,例子中的链接即为客户端提供了导航服务所需的信息。
2.LADP
LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP。 它是基于X.500标准的,但是简单多了并且可以根据需要定制。 与X.500不同,LDAP支持TCP/IP,这对访问Internet是必须的。
LDAP是开放的Internet标准,支持跨平台的Internet协议,在业界中得到广泛认可的,并且市场上或者开源社区上的大多产品都加入了对LDAP的支持,因此对于这类系统,不需单独定制,只需要通过LDAP做简单的配置就可以与服务器做认证交互。“简单粗暴”,可以大大降低重复开发和对接的成本。
LADP的使用
统一身份认证主要是改变原有的认证策略,使需要认证的软件都通过LDAP进行认证,在统一身份认证之后,用户的所有信息都存储在AD Server中。终端用户在需要使用公司内部服务的时候,都需要通过AD服务器的认证。
1. 连接到LDAP服务器;
2. 绑定到LDAP服务器;
3. 在LDAP服务器上执行所需的任何操作;
4. 释放LDAP服务器的连接;
上述步骤可以使用脚本实现。
3.spring历史&哲学的mysql
1)spring
于2002年的一本java数据起源,诞生于2003年,由Yann为其命名为Spring,它则是J2EE的新开始。
2004-版本1.0;2006-版本2.0;2007-版本2.5;2009-版本3.0;2011-版本3.x;2013-版本4.0;2014-版本4.xx
在其中还分别发布了spring boot和spring io等多个版本。
2)mysql的设计哲学
1.MySQL当初主要是定位为互联网行业;
2.MySQL强调简单且快速上手;
3.MySQL并不追求功能的多,也即臃肿;
针对mysql优化的哲学
注意:优化有风险,涉足需谨慎!
优化可能带来的问题
- 优化不总是对一个单纯的环境进行,还很可能是一个复杂的已投产的系统。
- 优化手段本来就有很大的风险,只不过你没能力意识到和预见到!
- 任何的技术可以解决一个问题,但必然存在带来一个问题的风险!
- 对于优化来说解决问题而带来的问题,控制在可接受的范围内才是有成果。
- 保持现状或出现更差的情况都是失败!
优化的需求
- 稳定性和业务可持续性,通常比性能更重要!
- 优化不可避免涉及到变更,变更就有风险!
- 优化使性能变好,维持和变差是等概率事件!
- 切记优化,应该是各部门协同,共同参与的工作,任何单一部门都不能对数据库进行优化!
- 所以优化工作,是由业务需要驱使的!!!
优化由谁参与
在进行数据库优化时,应由数据库管理员、业务部门代表、应用程序架构师、应用程序设计人员、应用程序开发人员、硬件及系统管理员、存储管理员等,业务相关人员共同参与。