服務端開發總結
1. 配置虛擬主機
在nginx中配置虛擬主機
server{
listen 80;
server_name www.xuechengedu.com;
ssi on;
ssi_silent_errors on;
location / {
alias F:/teach/xcEdu/xcEduUI/xc‐ui‐pc‐static‐portal/;
index index.html;
}
}
配置host文件 : 開發環境使用的是Windows10 修改C:\Windows\System32\drivers\etc\hosts文件
127.0.0.1 www.xuechengedu.com 這樣我們就可以通過本地來進行域名解析。網址www.xuechengedu.com經過本地解析指向的是localhost
1.2 SSI服務端包含技術
1.2.1 SSI是什麼
SSI 即是指服務端嵌入 server side include 是一種類似於ASP的基於服務器的網頁製作技術,大多數的服務器支持SSI命令。
原理是: 將內容發送到瀏覽器之前否, 可以使用服務器包含技術SSI指令將文本、圖形、或者應用程序信息包含到網頁中。
例如可以使用SSI包含時間戳、版本聲明、或者供客戶填寫返回單的表單,對於在多個文件中重複出現的文本或者是圖形,使用包含文件時一種簡潔的方法。將內容存入一個包含文件即可,而不必將內容輸入所有文件。通過一個簡單的語句既可以調用包含文件,此語句指示web服務器將內容插入式適當的網頁, 而且使用包含文件時,對內容的所有更改只需要在一個地方就能完成。
ssi包含類似於jsp頁面中的incluce指令,ssi是在web服務端將include指定 的頁面包含在網頁中,渲染html網頁響
應給客戶端 。nginx、apache等多數web容器都支持SSI指令。
SSI指令如下:
<!‐‐#include virtual="/../....html"‐‐>
在一個門戶網站的首頁中,我們可以將首頁進行拆分
- index.html:首頁主體內容
- include/header.html:頭部區域
- include/index_banner.html:輪播圖
- include/index_category.html:左側列表導航
- include/footer.html:頁尾
使用SSI 我們就可以在服務器端把以上的小頁面拼裝成一個大頁面就行展示。
我們需要在nginx的配置文件中進行配置
然後我們需要在nginx虛擬主機中開通SSI
server{
listen 80;
server_name www.xuechengedu.com;
ssi on;
ssi_silent_errors on;
......
ssi的配置參數如下: ssi on: 開啓ssi支持 ssi_silent_errors on:默認爲off,設置爲on則在處理SSI文件出錯時不
輸出錯誤信息 ssi_types:默認爲 ssi_types text/html,如果需要支持shtml(服務器執行腳本,類似於jsp)則需
要設置爲ssi_types text/shtml
@Data註解使用的好處
@Data註解是lombok.jar包下的註解,該註解通常用在實體bean上,不需要寫出set和get方法,但是具備實體bean所具備的方法,簡化編程提高變成速度。注意:項目中一定要引入lombok.jar!!
代碼簡潔許多,看上去不會太複雜。不過這裏需要在IDE中配置好lombok,由此看來,一些工具的使用可以大大增加業務邏輯的清晰度。
在項目中,所有微服務中的接口的定義都是在service api接口中進行定義的。這樣接口進行統一的定義, 可以使各個微服務之間方便的調用
所有的接口都是在service api下進行的
接口開發規範
Api請求及響應規範
爲了嚴格按照接口進行開發,提高效率,對請求及響應格式進行規範化。
1、get 請求時,採用key/value格式請求,SpringMVC可採用基本類型的變量接收,也可以採用對象接收。
2、Post請求時,可以提交form表單數據(application/x-www-form-urlencoded)和Json數據(ContentType=application/json),文件等多部件類型(multipart/form-data)三種數據格式,SpringMVC接收Json數據 使用@RequestBody註解解析請求的json數據。 4、響應結果統一信息爲:是否成功、操作代碼、提示信息及自定義數據。
5、響應結果統一格式爲json。
API定義約束
Api定義使用SpringMVC來完成,由於此接口後期將作爲微服務遠程調用使用,在定義接口時有如下限制:
1、@PathVariable 統一指定參數名稱,如:@PathVariable(“id”)
2、@RequestParam統一指定參數名稱,如: @RequestParam(“id”)
頁面查詢接口測試
我們項目中的代碼是基於服務端編寫接口,如果前端人員等待服務器將接口開發完畢再去開發前端內容這樣做的效率是非常低下的,所以當接口定義完成,可以使用工具生成接口文檔,前端人員查看接口文檔即可進行前端開發,這樣可以實現前端和後端開發的分離,大大的提高了開發效率。
介紹兩種接口開發工具,Swagger 和Postman
1.Swagger介紹
OpenAPI規範是Linux基金會的一個項目,試圖通過定義一種描述API和API定義的語言,來規範RESTful服務開發過程,
Swagger是全球最大的OpenAPI規範(OAS)API開發工具框架,支持從設計到文檔到測試部署的整個API生命週期的開發。
Spring Boot可以集成Swagger,生成Swagger接口,Spring Boot是Java領域的神器,它是spring項目下快速構建項目的框架。
Swagger常用註解
在Java類中添加Swagger的註解即可生成Swagger接口,常用Swagger註解如下:
@Api:修飾整個類,描述Controller的作用 @ApiOperation:描述一個類的一個方法,或者說一個接口
@ApiParam:單個參數描述 @ApiModel:用對象來接收參數 @ApiModelProperty:用對象接收參數時,描述對 象的一個字段 @ApiResponse:HTTP響應其中1個描述 @ApiResponses:HTTP響應整體描述
@ApiIgnore:使用 該註解忽略這個API @ApiError :發生錯誤返回的信息 @ApiImplicitParam:一個請求參數 @ApiImplicitParams:多個請求參數
@ApiImplicitParam屬性:
屬性 | 取值 | 作用 |
---|---|---|
paramType | 查詢參數類型 | |
path | 以地址的形式提交數據 | |
query | 直接跟參數完成自動映射賦值 | |
body | 以流的形式提交,僅支持POST | |
header | 參數在request headers裏邊提交 | |
form | 以form表單的形式提交,僅支持POST | |
dataType | 參數的數據類型 只作爲標誌說明,並沒有實際驗證 | |
Long | ||
String | ||
name | 接收參數名 | |
value | 接收參數的意義描述 | |
required | 參數是否是必填的 | |
true | 必填 | |
false | 非必填 | |
defaultValue | 默認值 |
@Api(value="cms頁面管理接口",description = "cms頁面管理接口,提供頁面的增、刪、改、查")
public interface CmsPageControllerApi {
//頁面查詢
@ApiOperation("分頁查詢頁面列表")
@ApiImplicitParams({
@ApiImplicitParam(name="page",value = "頁碼",required=true,paramType="path",dataType="int"),
@ApiImplicitParam(name="size",value = "每頁記錄數",required=true,paramType="path",dataType="int")
})
public QueryResponseResult findList(int page, int size, QueryPageRequest queryPageRequest);
}
Postman接口測試工具
Postman是一款強大的http接口測試工具,使用postman可以完成http各種請求的功能測試
官網地址:www.getpostman.com