簡介
是在1970年由美國電子工業協會(EIA)聯合貝爾系統、 數據機廠家及計算機終端生產廠家共同制定的用於串列通訊的標準。它的全名是“數據終端設備(DTE)和數據通訊設備(DCE)之間串列二進制數據交換接口技術標準”該標準規定採用一個25個腳的DB25連線器,對連線器的每個引腳的信號內容加以規定,還對各種信號的電平加以規定。
增加接口的時機
一般一個頁面不存在二次請求的需求時,使用一個接口,像一般的詳情頁,個人信息頁等;頁面單一功能又需要二次請求的,像帶分頁功能的列表頁,使用一個接口;頁面含多個功能,其中有一個需要二次請求的,則需要定義多個接口了,比如個人信息頁下帶一個待辦事項的列表,又支持分頁,那如果一個接口返回全部信息的話,以後每次翻頁都要刷新個人信息內容,這樣就造成了不必要的信息傳遞。
參數與返回值
先說參數,筆者目前的做法是一般查詢採用URL傳參,增改採用POST傳遞JSON字元串提交數據,刪除同樣使用POST方式。再說返回值,我們在項目中所有接口統一返回JOSN數據,並且約定一個格式,比如這個JSON對象含三個Key,分別是data,msg和status,分別代表了返回的數據,data可能是對象或者數組,請求反饋信息和反饋狀態碼,這樣就不用每個接口都說明一遍了。再談一些細節,在高級語言中,數據有多種類型,String,Int,DateTime等等。而序列化為JSON後,全部變為字元串,這個時候沒有給值的欄位就需要注意一下,像值類型,為可空時,序列化後值直接是null表示,沒有引號;為不可空時,值為默認值,同樣沒有引號,而DateTime則帶引號,"0001-01-01T00:00:00";而像引用類型String,無值時,序列化後也變成null,而不是空串"",要想用空串""表示,必須給一個默認值,如String.Empty,說這點是因為當時iOS告訴我說欄位值返回null時,他們那邊報錯。還有一種情況是之前遇到過的,就是數值類型的精度問題,當時接口返回一個價格欄位,伺服器端當然用decimal類型,並且保留兩位小數,但是iOS端接收到的值小數點後卻多出很多位,而Android沒有任何問題,最後只好在序列化前先轉成字元串類型。其它需要包含小數位的數值類型當小數點後全是0時,序列化變為整型,這種情況同樣需要先轉為字元串再序列化。關於DateTime類型,在作為增改參數接收時,就是反序列化後要插入到資料庫,如果你正好使用了Sql Server,又使用了DateTime類型,請注意它的範圍是1753-01-01 00:00:00 到9999-12-31 23:59:59,而空串轉為時間為"0001-01-01 00:00:00",會報異常。