那麼作為一個服務端開發人員,開發API介面需要哪些知識呢?個人覺得可以從兩個角度來看:
自己公司產品開發API
給第三方開發API,也叫OpenAPI、開放API,很多大公司都有自己的開放平臺
個人認為只有開發好了自己公司的API,才有資格或者有能力開發好開放API!
那麼從開發自己公司API開式,個人覺得需要以下知識點:
“天下武功,唯快不破”,一個好的API介面響應時間一定要快,多快算快?沒有最快,只有更快!一般公司會要求所有API響應時間不得超過100ms,高併發API再單獨要求,例如不得超過40ms,且吞吐量超過3000tps!
相信做過API開發的同學一定有經驗,由於序列化方式的不同,有時候一個欄位沒有值的時候可能會返回如下三種情況:
這個欄位在返回的json串裡沒有了;
這個欄位返回的是一個null;
這個欄位返回的是一個空字串。
如果你是前端的話,每個介面規則都不一樣,你頭大不大?是不是程式碼裡到處都充斥著
這樣的判斷程式碼?一不小心忘記處理了,然後APP的奔潰率就上來了。
一個好的API一定要有一個好的文件,API是靈魂的話,文件就是肉體以及華麗的外表,每一次對介面的更新都要及時反饋到文件上去並且及時的告知前端開發人員。我平時常用的就是把API文件寫在wiki上,固定好一個API文件模板,大家都按照這個規則去寫就好了,這樣前後端聯調時候對照清晰的文件也會省去很多的溝通成本。切不可因為懶得寫文件,覺得聯調時候溝通充分就可以了。你要知道隨著時間的推移,這個API很可能就被你忘了,或者接手的同事也無從下手。所以一定要有一個清晰的文件!
個人認為這個大家其實都知道怎麼一回事,因為即使你沒寫過openAPI,你還沒呼叫過openAPI嗎?微信支付、支付寶支付、極光推送、IM、友盟、OCPC、客服等等第三方應用都需要咱們呼叫他們的API,看過別人怎麼玩的,咱自己照抄就好了。還有一點想要說的就是:“把握好自己的需求,千萬不要過度設計!”
那麼作為一個服務端開發人員,開發API介面需要哪些知識呢?個人覺得可以從兩個角度來看:
自己公司產品開發API
給第三方開發API,也叫OpenAPI、開放API,很多大公司都有自己的開放平臺
個人認為只有開發好了自己公司的API,才有資格或者有能力開發好開放API!
那麼從開發自己公司API開式,個人覺得需要以下知識點:
響應時間要快“天下武功,唯快不破”,一個好的API介面響應時間一定要快,多快算快?沒有最快,只有更快!一般公司會要求所有API響應時間不得超過100ms,高併發API再單獨要求,例如不得超過40ms,且吞吐量超過3000tps!
返回的資料格式要穩定相信做過API開發的同學一定有經驗,由於序列化方式的不同,有時候一個欄位沒有值的時候可能會返回如下三種情況:
這個欄位在返回的json串裡沒有了;
這個欄位返回的是一個null;
這個欄位返回的是一個空字串。
如果你是前端的話,每個介面規則都不一樣,你頭大不大?是不是程式碼裡到處都充斥著
if(id && id != null && id != "")這樣的判斷程式碼?一不小心忘記處理了,然後APP的奔潰率就上來了。
文件要清晰標準一個好的API一定要有一個好的文件,API是靈魂的話,文件就是肉體以及華麗的外表,每一次對介面的更新都要及時反饋到文件上去並且及時的告知前端開發人員。我平時常用的就是把API文件寫在wiki上,固定好一個API文件模板,大家都按照這個規則去寫就好了,這樣前後端聯調時候對照清晰的文件也會省去很多的溝通成本。切不可因為懶得寫文件,覺得聯調時候溝通充分就可以了。你要知道隨著時間的推移,這個API很可能就被你忘了,或者接手的同事也無從下手。所以一定要有一個清晰的文件!
那麼在此基礎上如何開發一個優秀的開放API呢?個人認為這個大家其實都知道怎麼一回事,因為即使你沒寫過openAPI,你還沒呼叫過openAPI嗎?微信支付、支付寶支付、極光推送、IM、友盟、OCPC、客服等等第三方應用都需要咱們呼叫他們的API,看過別人怎麼玩的,咱自己照抄就好了。還有一點想要說的就是:“把握好自己的需求,千萬不要過度設計!”