发表于: 2018-03-04 23:43:14
1 579
今天完成的事情:
1.根据昨天任务8审核提出的问题修改了任务8和任务9的相关代码。
之前直接把第三方的sdk包下载下来然后复制到了项目中,这种做法一点也不优雅,我们的项目应该通过maven统一管理相关的包。
做了一些相应的修改,先把sdk的jar包install至本地maven仓库中。
在jar包目录下使用maven命令:
mvn install:install-file -Dfile=sendcloud-sdk.jar -DgroupId=com.sendcloud-sdk -DartifactId=sdk -Dversion=1.0 -Dpackaging=jar
然后在pom.xml文件中添加依赖。
<dependency>
<groupId>com.sendcloud-sdk</groupId>
<artifactId>sdk</artifactId>
<version>1.0</version>
</dependency>
2.准备小课堂的内容,RESTful API。
(Representational State Transfer, REST)表述性状态转移。
- 表述性(Representational):REST资源可以用各种形式来进行表述,包括XML JSON甚至HTML---最适合资源使用者的任意形式。
- 状态(State):当使用REST的时候,我们更关注资源的状态而不是对资源采用的行为。
- 转移(Trasfer):REST涉及到转移资源数据,它以某种表述性形式从一个应用转移到另一个应用。
REST就是将资源的状态以最适合客户端或者服务端的形式从服务器端转移到客户端(或者反过来)
2.知识剖析
RESTFul API有哪些特点:
- 基于“资源”,数据也好、服务也好,在RESTFul设计里一切都是资源。
- 无状态。一次调用一般就会返回结果,不存在类似于“打开连接-访问数据-关闭连接”这种依赖于上一次调用的情况。
- URL中通常不出现动词,只有名词
- URL语义清晰、明确
- 使用HTTP的GET、POST、DELETE、PUT来表示对于资源的增删改查
POST(CREATE):在服务器新建一个资源。
PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。
PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。
在RESTful架构中,每个网址代表一种资源(resource),所以网址中不能有动词,只能有名词,而且所用的名词往往与数据库的表格名对应。一般来说,数据库中的表都是同种记录的"集合"(collection),所以API中的名词也应该使用复数。
用user做一个例子;
DELETE /users/id: 删除某个用户
遇到的问题:
1.PATCH ,这个应该可以只提供任意的属性,这里不确定怎么写。
收获:
1.maven install jar包到本地仓库,然后再pom中引用。
2.对REST 有了基本理解。
明天的计划:
1.code review之前任务的代码。
2.完成小课堂。
评论