发表于: 2020-06-26 22:32:00

1 1496


今天作为

提交任务一的代码。

了解java接口,RESTful的一些概念。


网络应用程序,分为前端和后端两个部分。那么在前端和后端之间就必然存在着通信,因此API架构诞生了。目前RESTful API是目前比较成熟的一套互联网应用程序的API设计理论。

URI和URL。一个是统一资源标志符,一个是统一资源定位符。

URI只代表资源的实体,不代表它的形式。


Representational State Transfer  表现层状态转化( 资源定位及资源操作) 。

表象层面说就是通过get,post,put,delete方式来实现前后台通信的一种轻量级,跨平台,跨语言架构设计风格的web服务。

http不仅仅是传输协议,更是一种应用协议。REST,即Representational State Transfer的缩写。意为是"表现层状态转化"。RESTful表示一种风格,理解REST前需要理解资源,何谓资源,广义的资源是指可以操作的所有对象。可能是一个系统资源,如txt、jgp、xml …,亦可以是诸如自己定义的虚拟集合的抽象,如books、usrs、times。RESTfutl代表一种简洁、方便、快捷、高效、透明的架构,这取决于你怎样组合。具有如下特点:

1、规范化接口访问方式。这些http操作方法包括GET/POST/PUT/DELETE/OPTIONS等,每个操作方法都代表一个相同意义的操作,它向所有人透明地表明操作方式。比如GET只能读取/拉数据,当然你也可以是添加数据,但建议不要这么做,不然这样就失去了REST的意义。

GET 读取

POST 添加

PUT 修改

DELETE 删除

2、资源标识唯一。通过URI表示一个资源名称,形式/resource/patch。如/users,表示用户的组合,或用户群。当然还可以继续标识某个具体的一个用户,/users/11,表示id为11的用户。当然,你也可以又用一组/usrgroup/11的URI代表操作用户组,不过不建议这么做,因为这样从字面上重复了/users/11资源表示的内容。一个资源URI总是包含第一条实现的方法:

GET /users/11

POST /users/11

PUT /users/11

DELETE /users/11

当然,仅有这些还不足以包括资源操作的所有需求,所以还可以包含请求参数,如GET /users?type=list&page=1。

3、状态的转化。这就是REST的真实含义,指它允许资源URI具有不同的表现形式。同一个URI,根据不同请求方式,执行的动作不同;还可以根据请求的Header Accept的不同返回不同的结果,如text/html、text/css、text/xml等等。也可以理解为body不同。如查询快递一般,可以上次查询,物品还在仓库,而过一段时间已经在路上了。它表示的是一个互动过程。

4、所有信息都包含在当前请求中。请求的方式包含在 Request Header的Method中,还可以包含Accept、Accept-Encoding、Accept-Language,使用Authentication、Cookie等信息表明身份。同样,服务端通过发送Content-Length、Content-Type响应执行情况。最重要的是,需要返回Status Code通知执行状态,如200 201 400 404 500等http code。REST认为,所有信息都能通过请求一次性发送,而不必再采用方式保存状态,请求的信息本身已经说明了请求的意义。

5、无状态性。这是REST最重要的特性之一,这个状态指的是客户端与服务端无需为每次保存请求状态,客户端请求不必考虑当前状态,不必考虑上下文。具体上说,就是不必使用session等工具跟踪、保存请求的特殊性。比如,无论是谁,从哪里发送,几时发送,对同一个URI资源发送请求的结果都是一样的。据传,这样的设计是为当一台服务器宕机时,另一台服务器可以无差别地响应对方的请求。客户端请求只认URI,而不需理后台的设计。


HTTP协议

  完整的URL地址:schema://host[:post]/path[?query-string][#anchor]

scheme:指定底层使用的协议,例如:http,https,ftp

host:服务器的IP地址或者域名

port:服务器端口,默认为80

path:访问资源的路径

query-string:发送给http服务器的数据

anchor:锚(定义页面特定章节位置)

  请求的组成格式:请求行、消息报头、请求正文

请求行:Method Request-RUI HTTP-Version CRLF

例如:GET/HTTP/1.1 CRLF  (CRLF回车或换行符)

请求方式

GET:请求获取Request-URI所标识的资源

POST:在Request-URI所标识的资源后附加新的数据

HEAD:请求获取由Request-URI所标识的资源的响应消息报头

PUT:请求服务器存储一个资源,并用Request-URI作为其标识

DELETE:请求服务器删除Request-URI所标识的资源

OPTIONS:请求查询服务器的性能,或者查询与资源相关的选项和需求

  响应组成格式:状态行、消息报头、响应正文

状态行:HTTP-Version Status-Code Reason-Phrase CRLF

例如:HTTP/1.1 200 OK

常用状态码:

200 OK  客户端请求成功

400 Bad Request  客户端请求有语法错误,不能被服务器所理解

401 Unauthorized  服务器收到请求,但是拒绝提供服务。需要授权的资源

404 Not Found  请求资源不存在

500 Internal Server Error  服务器发生不可预期的错误

503 Server Unavailable  服务器当前不能处理客户端请求



明天计划的事情: 

1.查看接口定义格式,分别给出CRUD的接口文档

2.创建Maven WEB工程

3.根据接口文档,使用Spring Rest 编写对应的Controller,日志记录接收参数后,暂时不用写业务逻辑,直接返回JSP,直接用Json Tag-lib 生成假数据

4.本地运行Jetty:run 插件,修改端口号为8080,浏览器访问任意查询接口,判断是否可以正确返回数据

5.用Postman或者dhc测试接口文档,返回数据是否成功。


遇到的问题:关于接口,RESTFul的概念还没理清楚。

收获:在IDEA使用git上传代码到github

打开设置搜索git


直接点击commit上传到本地仓库


点击put上传到github



返回列表 返回列表
评论

    分享到