发表于: 2017-07-21 22:21:05

2 1102


今天做的事:

听到老大将hibernate,然后就看了几眼,发现门槛还是有点高

看了一下hibernate大概

和mybatis类似,都是基于JDBC对数据库进行操作

实现方法

看到一种和JDBC差不多的,使用逐个字段操作

最后在用save、update、delete等方法进行操作

还有使用HQL对SQL语句进行封装,然后再进行操作

这种和mybatis有一些相近,但又不同,可以说比较接近JDBCTemplate

不过暂时先Mark,待日后深入学习


然后瞻仰了一下老大知乎文章,对几个概念在做巩固和理解

model  模型

数据封装;将数据打包

util 工具

有一个明确的输入和一个明确的输出

单元测试也多是用来测试util

service 服务

提供服务,一般单元测试无法测试

实现一些逻辑功能

dao 与数据库的通信

对数据库增删查改

CRUD即创建,读取,更新,删除

controller 控制中心

所有指令,调度都从这里发出去


然后一直用API,对它的了解也不深入,浅显的看了一下概念

API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。API与系统调用的区别:系统调用代码都处于内核态,API是操作系统提供的一组函数,通常以库的形式存在,供用户调用,所以,API代码可能是完全是用户空间代码,也有的API调用了系统调用。


最后是今天的正题,也是任务二的开始,要学的东西还是好多啊!

Rest风格

REST,即Representational State Transfer的缩写。

URI(统一资源定位符)

所谓"上网",就是与互联网上一系列的"资源"互动,调用它的URI。

"资源"是一种信息实体,它可以有多种外在表现形式。我们把"资源"具体呈现出来的形式,叫做它的"表现层"(Representation)。

互联网通信协议HTTP协议,是一个无状态协议。这意味着,所有的状态都保存在服务器端。因此,如果客户端想要操作服务器,必须通过某种手段,让服务器端发生"状态转化"(State Transfer)。而这种转化是建立在表现层之上的,所以就是"表现层状态转化"。

客户端用到的手段,只能是HTTP协议。具体来说,就是HTTP协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE。

它们分别对应四种基本操作:GET用来获取资源,POST用来新建资源(也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源。

HEAD用来获取资源的元数据,OPTIONS用来获取信息,关于资源的哪些属性是客户端可以改变的。PATCH用来更新资源。

PATCH和PUT的区别是

PUT更新的是客户端提供的完整信息,PATCH提供的是客户端的指定信息


RESTful架构:

  (1)每一个URI代表一种资源;

  (2)客户端和服务器之间,传递这种资源的某种表现层;

  (3)客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。


过滤参数

?limit=10:指定返回记录的数量

?offset=10:指定返回记录的开始位置。

?page=2&per_page=100:指定第几页,以及每页的记录数。

?sortby=name&order=asc:指定返回结果按照哪个属性排序,以及排序顺序。

?animal_type_id=1:指定筛选条件


状态码:

200 OK - [GET]:服务器成功返回用户请求的数据,该操作是幂等的(Idempotent)。

201 CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功。

202 Accepted - [*]:表示一个请求已经进入后台排队(异步任务)

204 NO CONTENT - [DELETE]:用户删除数据成功。

400 INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的。

401 Unauthorized - [*]:表示用户没有权限(令牌、用户名、密码错误)。

403 Forbidden - [*] 表示用户得到授权(与401错误相对),但是访问是被禁止的。

404 NOT FOUND - [*]:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的。

406 Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)。

410 Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。

422 Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。

500 INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功。


返回结果

GET /collection:返回资源对象的列表(数组)

GET /collection/resource:返回单个资源对象

POST /collection:返回新生成的资源对象

PUT /collection/resource:返回完整的资源对象

PATCH /collection/resource:返回完整的资源对象

DELETE /collection/resource:返回一个空文档


还是对于REST有了一个浅显的了解,但还是很浅,我理解是,还是一种框架,一种大家遵守的规范,用以提高效率,避免不兼容。

明天找个实例好好理解一下


明天计划:实现一个REST实例,然后完成任务对于REST接口的要求,如果时间允许就继续学习创建maven web项目和spring MVC,顺便再补一补spring的知识(感觉规划了几天的事情。。。)


问题:都是些概念和理解的知识点,暂时没遇到实质性的问题。


收获:了解hibernate;了解REST风格;看了一点零碎的知识点。


返回列表 返回列表
评论

    分享到