发表于: 2017-10-18 22:37:13
2 713
今日完成的事情:
rest接口格式:
1)协议:API与用户的通信协议,总是使用HTTPs协议。
2)域名:应该尽量将API部署在专用域名之下。如:https://api.example.com
如果确定API很简单,不会有进一步扩展,可以考虑放在主域名下。如:https://example.org/api/
3)版本:应该将API的版本号放入URL。如:https://api.example.com/v1/
4)路径:路径又称"终点",表示API的具体网址。
在RESTful架构中,每个网址代表一种资源(resource),所以网址中不能有动词,只能有名词,而且所用的名词往往与数据库的表格名对应。一般来说,数据库中的表都是同种记录的"集合"(collection),所以API中的名词也应该使用复数。如:https://api.example.com/v1/users
5)HTTP动词:对于资源的具体操作类型,由HTTP动词表示。
常用的HTTP动词有下面五个(括号里是对应的SQL命令)。
GET(SELECT):从服务器取出资源。
- POST(CREATE):在服务器新建一个资源。
- PUT(UPDATE):在服务器更新资源。
- PATCH(UPDATE):在服务器更新资源。
- DELETE(DELETE):从服务器删除资源。
- 6)过滤信息:如果记录数量很多,服务器不可能都将它们返回给用户。API应该提供参数,过滤返回结果。
下面是一些常见的参数。
?limit=10:指定返回记录的数量
- ?offset=10:指定返回记录的开始位置。
- ?page=2&per_page=100:指定第几页,以及每页的记录数。
- ?sortby=name&order=asc:指定返回结果按照哪个属性排序,以及排序顺序。
- ?animal_type_id=1:指定筛选条件
暂时觉得自己经常能用到的就这些。当然这些还不完整。
然后学习了一下HttpServlet:
Servlet的框架是由两个Java包组成:javax.servlet和javax.servlet.http. 在javax.servlet包中定义了所有的Servlet类都必须实现或扩展的的通用接口和类。在javax.servlet.http包中定义了采用HTTP通信协议的HttpServlet类。
Servlet的框架的核心是javax.servlet.Servlet接口,所有的Servlet都必须实现这一接口。
当Web容器接收到某个Servlet请求时,Servlet把请求封装成一个HttpServletRequest对象,然后把对象传给Servlet的对应的服务方法。
HTTP的请求方式包括DELETE,GET,OPTIONS,POST,PUT和TRACE,在HttpServlet类中分别提供了相应的服务方法,它们是,doDelete(),doGet(),doOptions(),doPost(), doPut()和doTrace()。
HttpServlet的功能:
HttpServlet首先必须读取Http请求的内容。Servlet容器负责创建HttpServlet对象,并把Http请求直接封装到HttpServlet对象中,大大简化了HttpServlet解析请求数据的工作量。HttpServlet容器响应Web客户请求流程如下:
1)Web客户向Servlet容器发出Http请求;
2)Servlet容器解析Web客户的Http请求;
3)Servlet容器创建一个HttpRequest对象,在这个对象中封装Http请求信息;
4)Servlet容器创建一个HttpResponse对象;
5)Servlet容器调用HttpServlet的service方法,把HttpRequest和HttpResponse对象作为service方法的参数传给HttpServlet对象;
6)HttpServlet调用HttpRequest的有关方法,获取HTTP请求信息;
7)HttpServlet调用HttpResponse的有关方法,生成响应数据;
8)Servlet容器把HttpServlet的响应结果传给Web客户。
创建HttpServlet的步骤:
1)扩展HttpServlet抽象类;
2)覆盖HttpServlet的部分方法,如覆盖doGet()或doPost()方法;
3)获取HTTP请求信息。通过HttpServletRequest对象来检索HTML表单所提交的数据或URL上的查询字符串;
4)生成HTTP响应结果。通过HttpServletResponse对象生成响应结果,它有一个getWriter()方法,该方法返回一个PrintWriter对象。
最重要的是在web.xml中添加
<servlet>
<servlet-name>HelloServlet</servlet-name>
<servlet-class>mypack.HelloServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloServlet</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>今天主要看的知识点比较多,也比较杂,自己随便总结了一下。下午自己动手试着做了一下HttpServlet,结果没有搞出来,最后还把本地tomcat配置给弄错了。今天晚上在弄一下看看。代码一团糟,而且配置也是一团糟,所以今天没有办法上代码了。
明天计划的事情:
学习httpservlet,然后重点学习springMVC。
遇到的困难:
httpservlet配置到tomcat失败,暂时还是没有解决,晚上继续搞一下。
收获:
认识了rest接口格式,知道了httpservlet。
任务开始时间:2017/10/18
预计完成时间:1017/10/25
延期:无
禅道:http://task.ptteng.com/zentao/project-task.html
评论