app後端伺服器開發小結
本文來自圖靈社群 by fairjm
轉截請註明出處
app的API與網站使用的API較大的區別是其生命週期更長.API的修改需要做到向後相容.
app的API設計要考慮到app的版本問題.API本身需要可以演化.
怎麼拿到App的版本?
這不是一個技術問題而是一個設計問題,需要和app開發協商.
比如User-Agent欄位,讓app傳送請求都帶上一些標誌.
後端建議做成一個工具類,可以從Request中抽取這些資料.
比如:
public AppInfo getAppInfoFromRequest(Request request) {
....
}
AppInfo
中需要包含系統標識,app標識(應用在一個伺服器服務多個app的情況下)以及app版本.比如
public class AppInfo {
private int systemType;
private int appType;
private String appVersion;
...
}
public enum SystemType {
ANDROID(0),
IOS(1),
WP(2);
private int id;
.....
}
public enum AppType {
APP1(0),
APP2(1);
private int id;
...
}
有些時候可能app內的webview也要對app做這些判斷
對於安卓可以,一些webview的請求可能無法自定義UA 可以通過X-Requeted-With
來判斷
但這樣只能判斷出系統和App型別 版本無法知道
API的演化
這是app端也要做的事.
如果是用JSON
的資料,需要app端做JSON物件增加屬性時的相容
舉個例子 如果移動端用jackson做反序列可以讓他們指定一下JsonIgnoreProperties
或者在ObjectMapper中進行配置
objectMapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false)
對於只返回一個String
或者返回JSON Array
的情況,務必也用JSON Object
包裹一下,以免以後需要加屬性造成沒地方可加的尷尬.
對於無法演化的情況,比如app那邊介面大改,已有的介面不能符合,一些欄位的意義改變的情況,可以在API後加上/v2
的形式或者在請求引數中加上?version=2
的方式,看個人喜好.
WebView使用場景
適合使用WebView的頁面是版本無關的.
比如一個頁面,在1.1版本中主色調是綠色,在1.2版本中是紅色,在1.3版本中是黃色.以後再改變新版本樣式但需要老版本保持不變.對於這種不同的版本需求不同,為何不用native來做?
工作中最多的一次一個url對應了6個頁面,本來挺簡單的一個action因為要相容2個app的3個版本做成了一大坨.
如果是因為工作量的問題,建議頁面的地址由後端提供API給,而不是在移動端寫死.
新技術推動
react native
之類的技術推動下,後端的一些工作就能輕鬆很多了.
相關文章
- 移動端開發小結
- 前後端開發流程總結後端
- 移動端開發小結(實戰)
- App《最美詩詞》開發 -- Java後端(整合框架)APPJava後端框架
- python後端開發面試總結Python後端面試
- app後端選擇什麼伺服器APP後端伺服器
- 基於後端雲微信小程式開發後端微信小程式
- 軟體開發:app軟體開發,pc端軟體開發,微商城/小程式開發APP
- 小程式SDK在跨端app開發是否有優勢?跨端APP
- golang 後端技術開發必備總結Golang後端
- 7 天開發後臺系統技術小結
- 移動端App開發 - 01 - 開篇APP
- Flutter 開發小結Flutter
- django開發小結Django
- app後端和web後端的區別APP後端Web
- Tlias-後端開發後端
- 教育類APP開發小知識APP
- 開發小說APP需要哪些功能APP
- 【心得】Lattice Diamond 後端約束實戰小結後端
- 【開源】Westore Cloud 釋出- 沒後端沒SQL沒DBA,只需 javascript 開發雲端小程式Cloud後端SQLJavaScript
- Flutter 開發小結 | TipsFlutter
- 小程式開發總結
- Vue元件開發小結Vue元件
- uni-app + Cloudbase——uni-app 專案中如何使用騰訊雲開發後端服務APPCloud後端
- Flask後端開發(二) - 功能實現和專案總結Flask後端
- 校園集市小程式開發-系統架構與Django後端架構Django後端
- 後端搞 Cocos 小遊戲開發的三點避坑指北後端遊戲開發
- 後端開發怎麼學?後端
- python 後端開發面經Python後端
- JAVA後端開發規範Java後端
- Vue.js開發移動端APPVue.jsAPP
- App 整合 google-Facebook-paypal 社會化登入伺服器端開發指南APPGo伺服器
- 線上漫畫小程式app開發APP
- app,小程式開發基礎知識APP
- 開發APP和開發微信小程式的區別?APP微信小程式
- 短影片直播APP原生開發提供演示APP定製開發多終端支援APP
- 前後端分離後模組開發後端
- 重新學習web後端開發-005-瞭解前後端分離開發模式Web後端模式
- Taro小程式開發總結