接口規範

一、xml規範

先看看這個XML文件:

1
2
3
4
5
<article>
    <id><![CDATA[12]]></id>
    <date><![CDATA[20110505]]></date>
    <content><![CDATA[這是一個100000字節的html字符串]]></content>
</article>

這個XML文件的問題在於:

  1. 把屬性id作爲“包含”來處理了,這是錯誤的,因爲id是article的屬性,而並非article包含叫id的內容,實際上有時候在事件型解析XML時,我們需要首先確定article的id,這就要求id一定是在其他任何子標籤之前被解析器獲得,所以id必須放在article的屬性裏,以保證絕對安全。
  2. 濫用cdata,雖然cdata可以保護數據,防止諸如這樣的內容,然是如date這樣的數據不必要放在cdata裏。
  3. xml中包含了太多的內容(content標籤),xml是用來呈現數據的結構,xml不應該包含過長的內容,例如整個html字符串,而應該給出html的地址。

所以,我們在協商XML時,應該遵循語義化原則,明確“屬性”與“包含”的不同。

二、URL參數規範

  1. 參數語義性:我們不應該使用諸如number這樣毫無具體意義的參數名,而要使用例如querytype這樣有意義的。參數的值也是如此,例如一個querytype參數的值不應該是1、2、3、4,而是queryold querynew queryall等等。
  2. 參數功能單一性:如果一個參數(例如querycount)只可能取到1、2、3、4四個值(表示不同的查詢類型),我們不能爲了節省參數傳遞而將5、6、7、8等等值協商爲其他作用。原因很多,首先這樣做非常混亂,其次你可能將來會擴展querycount的取值。
  3. 參數必須初始化原則:如果有一個參數(例如isRecommend,表示是否推薦),我們在做判斷時不應該基於這個參數是否定義了,而應該基於它的值,所以我們規定,這樣的參數,我們應該傳遞字符串true爲值。

三、路徑引用規範

  1. 使用相對路徑:當我們嚮應用端發送含有資源引用的數據(如html),並且這些數據要本地化時,(html)要使用相對路徑來引用資源,這樣避免html中永遠引用絕對地址,導致數據無法顯示。
  2. 根地址分離:客戶端應該保存經常請求地址的根地址,例如“http://172.0.0.10/”,而向服務器返回的數據,應該都不包含根地址,而是客戶端來進行地址拼接,這樣可以避免根地址變化帶來的大幅度程序修改。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章