喬戈里袋哼,一名在北漂的大廠程序員,在這里記錄下來喬戈里從校招進(jìn)入大廠以來的點(diǎn)點(diǎn)滴滴考余。
事情
起因
如圖所示先嬉,發(fā)生在這周的一個工作日轧苫,當(dāng)時這份接口文檔評審?fù)瓿闪耍≒S:在大廠開發(fā)需要開發(fā)寫接口文檔楚堤,然后由高 T去評審接口文檔,文檔沒問題了含懊,然后前端和后端開發(fā)按照接口文檔進(jìn)行開發(fā))身冬,然后需要根據(jù)評審意見進(jìn)行修改,由于某些原因岔乔,這份接口文檔的開發(fā)工作需要交接給新來的實(shí)習(xí)生進(jìn)行開發(fā)酥筝,所以喬戈里就讓實(shí)習(xí)生完成接下來的修改工作和開發(fā)工作。
修改接口文檔過程
修改的地方不多雏门,一個是加一個分頁效果嘿歌,另外一個是給返回結(jié)果里面增加一些字段,我理解工作量也不多茁影。
給返回結(jié)果里面增加一些字段 宙帝,我想的結(jié)果應(yīng)該是下面這樣:
{
"data":{
"A1":{
"A1":[
"A1-1",
"A1-2"
],
"current":""
}
}
}
其中, data.A1.A1
是個 list
募闲,里面是包括 data.A1.A1
所有取值情況步脓,data.A1.current
字段是代表data.A1.A1
當(dāng)前被用戶選中了哪個字段。
但是萬萬沒想到浩螺,實(shí)習(xí)生把修改完的接口文檔給我靴患,我看到的是這個樣子的結(jié)果:
{
"data":{
"A1":{
"A1": {A1-1,A1-2} ,
"new":null
}
}
}
我問了實(shí)習(xí)生,你這個可以在json 在線解析網(wǎng)址
解析成json
嗎要出?實(shí)習(xí)生回我鸳君,json是什么東西啊?
喬戈里當(dāng)時就?患蹂?相嵌?
好吧,
json
不知道就不知道吧况脆,但這個為了實(shí)現(xiàn)分頁效果的修改也是槽點(diǎn)滿滿饭宾。
我期待的結(jié)果是下面這樣:
{
"page":{
"pageNo":1,
"pageSize":10,
"totalCount":1
}
}
結(jié)果實(shí)習(xí)生只加了一個 page:1
這樣的字段,我問你這樣可以實(shí)現(xiàn)分頁效果嗎?只展示第幾頁,不展示每頁展示多少嗎格了?
處理過程
最后我看他這樣呀,修改完不知道啥時候盛末,我就把接口文檔的修改工作親自改完了弹惦。
反思大廠招人標(biāo)準(zhǔn)
(圖片)看到這里否淤,大家估計都會新生疑問,我靠棠隐,這么菜怎么進(jìn)的百度笆铡?助泽。其實(shí)當(dāng)時發(fā)完朋友圈啰扛,就一堆人在下面評論問我了,(PS:想窺探我朋友圈一手消息的嗡贺,可以加我哈已經(jīng)有我好友就不用加了哈隐解,目前人數(shù)還沒到上限, 復(fù)制 QGLNB12342 添加即可)
這里和大家說一下大廠招實(shí)習(xí)生看中什么,其實(shí)大家可以從網(wǎng)上看看大廠的面經(jīng)就知道了:
- 基礎(chǔ)扎實(shí)诫睬,計算機(jī)基礎(chǔ):操作系統(tǒng)煞茫、數(shù)據(jù)庫、數(shù)據(jù)結(jié)構(gòu)摄凡、計算機(jī)網(wǎng)絡(luò)续徽、設(shè)計模塊、Java 基礎(chǔ)集合 Spring這些得會
- 手寫算法題可以徒手把《劍指 offer》上面的每道題10分鐘內(nèi)寫出來
- 有個能說的項(xiàng)目
- 學(xué)歷尚可亲澡,學(xué)歷不行只能找人內(nèi)推钦扭,比如找喬戈里內(nèi)推。
所以你看谷扣,面試的時候也不會去讓你徒手寫個json
啊土全,不會json并不影響你通過面試。
關(guān)于上面這些進(jìn)入大廠必備的東西会涎,喬戈里之前在準(zhǔn)備面試的時候總結(jié)了一份資料裹匙,如下圖所示
已經(jīng)幫助很多粉絲朋友拿到互聯(lián)網(wǎng)公司的 offer,最近一位讀者朋友說她拿到了百度的22K+12W 簽字費(fèi) offer末秃。
需要的在我的公眾好 程序員喬戈里 后臺回復(fù) 888 獲取這份大廠面試寶典概页。
接口文檔
關(guān)于實(shí)習(xí)生的事情,雖然我自己親手改了接口文檔练慕,但想著以后如果有寫接口文檔的事惰匙,也不能老是我親自動手啊,于是我在雙11的夜晚铃将,整理了一些資料發(fā)給了實(shí)習(xí)生项鬼。
別問為什么雙11晚上不陪女朋友過節(jié),喬戈里但凡有個女朋友劲阎,至于大晚上給一個大老爺們發(fā)這些資料嗎绘盟?
https://juejin.im/entry/6844903426350907400
需要我整理的這些接口文檔資料的,可以在喬戈里的公眾好:程序員喬戈里 后臺回復(fù) 接口文檔 獲取。
接口的命名規(guī)范
接口的 url 中比較重要的點(diǎn)就是路徑了我覺得:
路徑又稱"終點(diǎn)"(endpoint)龄毡,表示API的具體網(wǎng)址吠卷。
在RESTful架構(gòu)中,每個網(wǎng)址代表一種資源(resource)沦零,所以網(wǎng)址中不能有動詞祭隔,只能有名詞,而且所用的名詞往往與數(shù)據(jù)庫的表格名對應(yīng)路操。一般來說疾渴,數(shù)據(jù)庫中的表都是同種記錄的"集合"(collection),所以API中的名詞也應(yīng)該使用復(fù)數(shù)寻拂。
舉例來說程奠,有一個API提供動物園(zoo)的信息丈牢,還包括各種動物
你如果想定位到某個動物園下的某種動物,那你的 url:
https://api.example.com/v1/zoos/{zooID}/animals/{animals}
zooID換成對應(yīng)的動物園 ID祭钉,animals換成對應(yīng)的動物。
https://api.example.com/v1/zoos/2/animals/pig
就代表2號動物園的 pig己沛。
接口的增刪改查
比如你新建一個配置并進(jìn)行保存慌核,那么應(yīng)該使用 post 方法,然后再進(jìn)行編輯應(yīng)該使用 put 方法申尼。
雖然你使用 post 也可以在后端實(shí)現(xiàn)修改編輯的功能垮卓,甚至你可以使用 post 使用 get 方法,但是其實(shí)是不符合規(guī)范师幕,大廠還是很注重規(guī)范粟按。
翻頁的設(shè)計
每個公司可能前端的翻頁都有默認(rèn)那一套,最好是和前端提前對齊再去設(shè)計接口文檔霹粥,別一個接口文檔一種翻頁方式灭将,給前端和后端都增加不少工作量。
對齊
文檔如果更改完了后控,記得和大家對齊接口文檔
最后
喬戈里原創(chuàng)不易庙曙,覺得有幫助的,希望人才們轉(zhuǎn)發(fā)浩淘、點(diǎn)贊捌朴、在看支持一波。