发表于: 2017-06-21 22:58:07

3 1028


1.开始用eclipse写xml总是出问题。比如

总不能把错误的地方全手打一遍,只好

2.然后听了师兄的建议,换IDEA了,正版的钱以后会补上的。。。用起来之后感觉确实不错,用起来也不是特别难,有一些配置问题记录了一下。配置maven web项目的tomcat如图所示,在Aritifaces中有两个war,一个是war 一个是war exploded,在配置服务器时需要选择war explode。注意,这两个war都不应该是自己添加的,而是根据maven中的配置自己生成,之前没有这两个war的时候,我都是自己创建,往往后果就是项目在编译后缺少jar包,依赖的jar没有自动拷贝
其实Intellij中的mavan项目配置,都是依赖于pom中的配置,如果pom中的配置正确,就不需要修改项目的IDE配置
首先pom要有<packaging>war</packaging>,如果pom中配置了这个,Aritifaces就会有上面的两个war,其次pom要有<build>    <finalName>test</finalName>  </build> 这个关系到上图中的output directory中的配置,finalName作为target下的项目目录
,以及会创建对应名字的war包(比如test.war)

3.然后可以通过下面的命令定义pom将自定义jar包添加到本地仓库中,但maven不建议在本地添加依赖

mvn install:install-file -Dfile=path/to/hello-world-1.0.jar -DgroupId=com.thoughtworks.davenkin -DartifactId=hello-world -Dversion=1.0 -Dpackaging=jar

4.Rest风格全称是Resource Representational State Transfer,:通俗来讲就是:资源在网络中以某种表现形式进行状态转移。分解开来:
Resource:资源,即数据(前面说过网络的核心)。比如 newsfeed,friends等;
Representational:某种表现形式,比如用JSON,XML,JPEG等;
State Transfer:状态变化。通过HTTP动词实现。
rest风格即URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作,并吐出标准数据格式的数据(JSON/XML)
RESTful API(REST风格的网络接口);2. Server提供的RESTful API中,URL中只使用名词来指定资源,原则上不使用动词。“资源”是REST架构或者说整个网络处理的核心。
比如:http://api.qc.com/v1/newsfeed:
获取某人的新鲜; http://api.qc.com/v1/friends:
获取某人的好友列表;http://api.qc.com/v1/profile:
获取某人的详细信息;
用HTTP协议里的动词来实现资源的添加,修改,删除等操作。即通过HTTP动词来实现资源的状态扭转:
GET    用来获取资源,
POST  用来新建资源(也可以用于更新资源)
PUT    用来更新资源,
DELETE  用来删除资源。
比如:
DELETE http://api.qc.com/v1/friends: 删除某人的好友 (在http parameter指定好友id)
POST http://api.qc.com/v1/friends: 添加好友
UPDATE http://api.qc.com/v1/profile: 更新个人资料
作者
首先为什么要用RESTful结构呢?大家都知道"古代"网页是前端后端融在一起的,比如之前的PHP,JSP等。在之前的桌面时代问题不大,但是近年来移动互联网的发展,
各种类型的Client层出不穷,RESTful可以通过一套统一的接口为 Web,iOS和Android提供服务。另外对于广大平台来说,比如Facebook platform,微博开放平台,微信公共平台等
,它们不需要有显式的前端,只需要一套提供服务的接口,于是RESTful更是它们最好的选择。在RESTful架构下。


Server的API如何设计才满足RESTful要求?
首先是简洁版里面的那几点。外加一些附带的 best practices:
1. URL root:https://example.org/api/v1/*https://api.example.com/v1/*
2. API versioning:可以放在URL里面,也可以用HTTP的header:/api/v1/
3. URI使用名词而不是动词,且推荐用复数。BAD/getProducts/listOrders/retrieveClientByOrder?orderId=1GOODGET /products : will return the list of all productsPOST /products : will add a product to the collectionGET /products/
4 : will retrieve product #4PATCH/PUT /products/4 : will update product #44. 保证  HEAD 和 GET 方法是安全的,不会对资源状态有所改变(污染)。比如严格杜绝如下情况:GET /deleteProduct?id=1
5. 资源的地址推荐用嵌套结构。比如:GET /friends/10375923/profileUPDATE /profile/primaryAddress/city
6. 警惕返回结果的大小。如果过大,及时进行分页(pagination)或者加入限制(limit)。HTTP协议支持分页(Pagination)操作,在Header中使用 Link 即可。
7. 使用正确的HTTP Status Code表示访问状态:HTTP/1.1: Status Code Definitions
8. 在返回结果用明确易懂的文本(String。注意返回的错误是要给人看的,避免用 1001 这种错误信息),而且适当地加入注释。

5.

一、什么是接口文档?在项目开发中,web项目的前后端分离开发,APP开发,需要由前后端工程师共同定义接口,编写接口文档,之后大家都根据这个接口文档进行开发,到项目结束前都要一直维护。
二、为什么要写接口文档?1、项目开发过程中前后端工程师有一个统一的文件进行沟通交流开发2、项目维护中或者项目人员更迭,方便后期人员查看、维护
三、接口规范是什么?首先接口分为四部分:方法、uri、请求参数、返回参数
1、方法:新增(post) 修改(put) 删除(delete) 获取(get)
2、uri:以/a开头,如果需要登录才能调用的接口(如新增、修改;前台的用户个人信息,资金信息等)后面需要加/u,即:/a/u;中间一般放表名或者能表达这个接口的单词;get方法,如果是后台通过搜索查询列表,那么以/search结尾,如果是前台的查询列表,以/list结尾;url参数就不说了。
3、请求参数和返回参数,都分为5列:字段、说明、类型、备注、是否必填字段是类的属性;说明是中文释义;类型是属性类型,只有String、Number、Object、Array四种类型;备注是一些解释,或者可以写一下例子,比如负责json结构的情况,最好写上例子,好让前端能更好理解;是否必填是字段的是否必填

4、返回参数结构有几种情况

            1、如果只返回接口调用成功还是失败(如新增、删除、修改等),则只有一个结构体:code和message两个参数

            2、如果要返回某些参数,则有两个结构体:
                        1是code/mesage/data,
                        2是data里写返回的参数,data是object类型;
                        3如果要返回列表,那么有三个结构体,1是code/mesage/data,data是object,里面放置page/size/total/totalPage/list 5个参数,其中list是Arrary类型,list里放object,object里是具体的参数。注意:uri地址里不允许出现大写字母,如果是两个单词拼接,用/分开。

今天完成的:

任务4:使用Task1中的Service完成接口的实现。但任务3实现rest接口还是没写完

遇到的问题:

对json还是不太清楚,想问一下师兄任务二里的返回参数code/message是要用json封装起来输出给页面吗?





返回列表 返回列表
评论

    分享到