產(chǎn)品經(jīng)理加分項-API 接口
產(chǎn)品經(jīng)理要是知道一些技術(shù)知識,在溝通和協(xié)調(diào)時團隊效率會高很多。本文分享的API知識,能幫助大家更好與技術(shù)同學溝通,一起來學習下。
今天寫一篇B端產(chǎn)品經(jīng)理的 API 接口相關(guān)知識點,很多招聘崗位JD上都有要求產(chǎn)品經(jīng)理能夠?qū)崿F(xiàn)跨系統(tǒng)的對接,尤其是現(xiàn)在做到 ERP 的產(chǎn)品包括國內(nèi)的電商和國外電商都要求這一塊作為一個能力上面來進行體現(xiàn)??戳司W(wǎng)上一些資料,以及自身一些看法對這塊做個概括總結(jié),從 8個方面來展開。
- 產(chǎn)品經(jīng)理在這個過程中接口文檔適用對象以及在什么環(huán)節(jié)里用?
- 接口的使用場景。
- 接口文檔形式,到底是長什么樣子?站在產(chǎn)品層面它的理解上面絕對會比前后臺的頁面上面的設(shè)計來的都復雜,講究的是業(yè)務之間的流轉(zhuǎn)。
- 接口對接流程上的梳理,拿到接口怎么去對接?業(yè)務要做什么?產(chǎn)品經(jīng)理要做什么?開發(fā)要去做什么?測試要去做什么?運營上線之后還要去做什么?
- 系統(tǒng)流程梳理,也就是接口文檔對接清單。
- prd需求文檔里面關(guān)于接口的寫作手法,要知道產(chǎn)品會關(guān)聯(lián)哪些系統(tǒng)?調(diào)用哪些接口?詳細寫明輸入輸出,調(diào)用接口的一些傳入值。
- 梳理接口的注意的事項點,在這個過程中就六個方針,不要在這個過程遺忘了。
①注意要測試環(huán)境和生產(chǎn)環(huán)境生產(chǎn)上線時候要提醒研發(fā)換到生產(chǎn)環(huán)境調(diào)用。
②注意必輸字段和選輸字段,要傳入字段的含義和校驗。枚舉值不清楚含義的要詢問對方含義,比如說單據(jù)類型字段枚舉值是 B2C發(fā)貨單,采購退貨發(fā)貨單等。
③ 注意唯一ID之間的關(guān)聯(lián),比如說我們訂單系統(tǒng)的發(fā)貨單號是 001,到 wms系統(tǒng)是否生成了一個新單號 A001,那發(fā)貨回執(zhí)時候wms要給 oms系統(tǒng) 001 單號。
④注意基礎(chǔ)信息的映射,比如說倉庫代碼和對方倉庫代碼是否一樣,商品編碼和對方商品編碼是否一樣。如果不一樣還要進行映射,那映射的工作是誰來做,
⑤ 注意行信息和明細(我們常說的 list)數(shù)據(jù)。哪些在行中,哪些在明細中,看的是單據(jù)和字段的關(guān)系,是一對一還是一對多,一對一就在行中,一對多就在明細中。比如說發(fā)貨單只有一個發(fā)貨倉,那么就是在行中,但是一個發(fā)貨單有多個商品,那就在明細中。
⑥接口文檔字段的校驗,比如說發(fā)貨單下發(fā) wms,wms會校驗商品是否存在,倉庫是否存在等,這些校驗服務于業(yè)務需要,比如說商品都不存在,我怎么發(fā)貨呢對吧,所以雙方系統(tǒng)的基礎(chǔ)數(shù)據(jù)要對齊。
⑦同步方式:增量和全量。一般在做基礎(chǔ)數(shù)據(jù)同步的時候,比如說商品檔案,會員信息等,增是指的是增加的變動的推送給其他系統(tǒng)。
⑧接口文檔常用的一些名詞,面試的時候有的面試官會問到 ERP 接口,那我在這個時候怎么回答?
首先第一個問題接口對于主流做B端產(chǎn)品的像涉及到電商需要對接OWTB等多個系統(tǒng)平臺是需要接口能力的。要比寫需求文檔難度上一個層次,PRD 里面涉及的的業(yè)務流,功能數(shù)據(jù),所有界面和說明都是在這個環(huán)節(jié)要完成的但是接口文檔在這里面的話是作為加分項,它會更加復雜一點,既要理解 oms平臺系統(tǒng)是做什么的,你要理解wms系統(tǒng)做什么的,把這種系統(tǒng)流程圖畫出來,才能去理解說在這個過程中要去涉及對接系統(tǒng)的哪些接口。
那我們使用接口的2個場景:一個是前端開發(fā)工程師去調(diào)用后端的接口,另一個的場景的話是后端去調(diào)后端的接口。
首先我們要知道最基本的前提兩個系統(tǒng)之間它是怎么去傳遞數(shù)據(jù)的,比如我熟悉的ERP,它是一個大系統(tǒng),那 ERP 下面的話又會分為,采購系統(tǒng),銷售訂單系統(tǒng),庫存管理系統(tǒng),還有對接第三方的賬單支付系統(tǒng),那這個過程中就是整個單據(jù)處理的流程遇到的多個子系統(tǒng),關(guān)系到數(shù)據(jù)之間是怎么傳遞的?這是后端與后端之間的一個對接。
還有一個是前端對接后端,所有涉及到的 c 端的界面,比如說開權(quán)限,所有在這個過程中看到的界面都是來自于后臺在配置。C端的每個頁面,不是寫死的數(shù)據(jù)就是調(diào)用后臺接口,包括日常淘寶購物的時候,這個商品詳情頁本質(zhì)上就是前端開發(fā)工程師在調(diào)用后端開發(fā)工程師的接口,前端開發(fā)和后端開發(fā)中后臺系統(tǒng)之間的一些對接。
再比如說簡單的一個app提交訂單的步驟,它其實需要通過訂單系統(tǒng)創(chuàng)建待支付訂單,這個時候有支付接口需要調(diào)用第三方的支付系統(tǒng)去完成支付,還有所涉及到的商品系統(tǒng),庫存系統(tǒng),銷售系統(tǒng),以及最后獲取物流觸發(fā)的物流系統(tǒng)。它在整個訂單的履單的過程中,點擊提交訂單步驟上就是前端開發(fā)工程師調(diào)用了訂單的系統(tǒng),后端開發(fā)工程師有一個叫創(chuàng)建待支付訂單的結(jié)果,跳轉(zhuǎn)到支付系統(tǒng)待支付訂單創(chuàng)建成功之后,用戶選擇支付方式,支付系統(tǒng)會調(diào)用支付接口完成支付,支付系統(tǒng)知道支付完成后上報給訂單系統(tǒng),訂單變成已支付待發(fā)貨狀態(tài),那與此同時都有在做的事是他們之間會一個個去查這里面所有下單的商品有沒有上下架?下架了這創(chuàng)建訂單也會失敗,這就是我們所涉及到的話,就是后臺,后臺的子系統(tǒng)之間調(diào)用來調(diào)用去。
大概有個認知之后,再說一下接口文檔的形式和接口文檔要怎么跟這個系統(tǒng)流程圖來進行梳理?要明確一點,前臺只要不是寫死的數(shù)據(jù),就是調(diào)后端的接口,跨系統(tǒng)之間所涉及的。那這種隊列是怎么實現(xiàn)的?就是 API 接口,就是兩個系統(tǒng)之間數(shù)據(jù)的傳輸,比如說訂單只要把發(fā)貨單下發(fā)下去了,人家倉庫wms那邊才能去發(fā)貨,發(fā)完貨后把結(jié)果告知我,那我在這個過程中知道我的始發(fā)的數(shù)量是多少件,這是通過接口告訴我的。
接口梳理了哈。
舉一個例子:一個是調(diào)用支付接口,一個是某開放平臺,大型公司都有自己的開放平臺的,我是賣衣服的某平臺,平臺上完成的交易是不是要通過第三方比如微信支付寶去扣買家微信賬戶或者支付寶里面的錢嘞?那這個時候跨系統(tǒng)對接,我就要去調(diào)微信支付寶的接口,去找到這個平臺的文檔對接中心 ,那 API 接口里面有哪些東西呢?第一個就是接口名稱,第二個就是接口上面什么場景下來進行使用?比如說我小程序上面的一個支付,那我進去就要找小程序上面的一支付就好了。 第三個接口請求的地址這一側(cè)的話是開發(fā)比較關(guān)注的,請求參數(shù),簽名,這些東西全部都是開發(fā)的。
具體輸入的參數(shù)里面應用上面的字段產(chǎn)品側(cè)要去進行明確,接口名稱,接口應用場景,請求參數(shù)里面看業(yè)務字段,請求參數(shù)里面我們所涉及到的,必填項的一些輸入值。
一般來說是商務部門先對接接口的。訂單號這塊有個問題,就是訂單系統(tǒng)產(chǎn)生的訂單號,還是支付系統(tǒng)產(chǎn)生的支付單號?因為一個訂單可以多支付的,一個訂單所涉及到的發(fā)起了一次支付,但是用戶等了兩分鐘他都沒付,這個單子就會自動關(guān)單了,后面他又發(fā)起了一個支付,所以你一個訂單是多筆支付單號在傳的時候的話,更精準的應該傳的是支付單號,而不是訂單號。這些單號作為唯一的的條件,這個東西是千萬不能搞錯的。
我作為產(chǎn)品,我必須要去理清楚我們公司到底傳的是什么單號,先不用在意選填項,在這個過程中我們主要的話要去看一下必填項,它在這個過程中會涉及到枚舉值。什么叫枚舉值?枚舉值就是用于表示一組有限選項的數(shù)據(jù)類型,比如性別。
產(chǎn)品經(jīng)理要去根據(jù)你的業(yè)務場景來進行限定,怎么來定義接口側(cè)的正常和異常,所涉及到的接口失誤錯了,那倉庫編碼的話我們默認傳的話是一般的數(shù)字,你傳給我的這個倉庫編碼,我在我們系統(tǒng)里查不到,結(jié)果報錯。這就是我們在輸入項的時候的話,尤其是必傳項,有沒有按照我的規(guī)則來進行傳?這接口接收失敗,也會同步告訴你接口接收失敗的原因是什么,那要是成功完了之后的話它會涉及到的輸出參數(shù),這個輸出參數(shù)在你其他的一些的所涉及到的字段里面應該也會用到的,這個是需要去關(guān)注的,所以我們接口上面大概知曉一下重要項是輸入輸出。
那我們下一個問題在于,輸入輸出我怎么知道它的輸入是什么?它的輸出是什么?我怎么知道是我提供接口,還是我的另一個對接方來進行提供接口?
拿一個開放平臺來講一下業(yè)務場景,這個就是有 多個商家會入駐到這個平臺上來進行賣貨。所以的話我們在這個過程需要根據(jù)每個商家比如說他的輸入?yún)?shù)會涉及到它的整體的請求參數(shù),都是輸入?yún)?shù)也就是會涉及到供應商編碼也就是商家編碼是什么?平臺會分配給你的編碼是什么?到底要什么狀態(tài)?如果說接的訂單是已審核狀態(tài),我要往下進行履單。要搞清楚拉什么時間段單子?接什么訂單的類型?后續(xù)要送的哪個收貨倉?因為不同的模式,包括的話收貨地址這個要去看,包括我在這個過程中你訂單有沒有期望的送貨時間,訂單層級需詳細到到底下單了哪一些商品的條碼?需要的數(shù)量是多少?這個全部都有接口給到,因為商家就是拿著這一些輸出到他們自己的訂單系統(tǒng)里面,然后去對接下游的 wms 的系統(tǒng)和tms物流系統(tǒng)去發(fā)貨,wms系統(tǒng)發(fā)完了貨之后它還有一個接口就是發(fā)貨結(jié)果告訴平臺,可以很清楚的知道運單號是什么?發(fā)了多少數(shù)量?哪個供應商?對接的哪個渠道的物流?以及快遞單號是什么?那產(chǎn)品側(cè)只要去關(guān)注接口的名稱,接口的調(diào)用是靠什么機制來進行調(diào)用,輸入輸出參數(shù)。
現(xiàn)在來說下要怎么知道是你給我接口還是我給你接口? 那首先第一個的話,在一般接口對接的時候,最起碼我要知道我們系統(tǒng)負責做什么事情,別人的系統(tǒng)負責做什么事情。
①與公司業(yè)務人員溝通,與系統(tǒng)對接方產(chǎn)品/技術(shù)描述業(yè)務場景,溝通發(fā)放接口文檔材料
②拿到材料之后 API接口過多請對方圈定一下接口,在場景上如果少接口則繼續(xù)和對方溝通確認。
③看 API接口,不太清楚哪些系統(tǒng)進行調(diào)用可以將材料發(fā)放研發(fā)團隊一起査看溝通,比如哪些接口是前端商城研發(fā)調(diào)用,哪些接口是支付系統(tǒng)調(diào)用。在輸入值時如果涉及到要查別的系統(tǒng)數(shù)據(jù),這個要在流程圖中進行說明。
④看 AP接口,接口的輸入輸出,尤其針對枚舉值,選輸必輸進行進一步確認。對于必輸字段并不懂的輸入的業(yè)務含義和對方確認,和自己的業(yè)務方確議。
⑤繪制系統(tǒng)流程圖與AP|接口清單,梳理功能點,繪制原型和寫 PRD 文檔。【要考慮正向和逆向,逆向取消,逆向售后。是否存在修改場景?
⑥PRD 文檔中增加與外對接 API接囗對接的輸入輸出邏輯說明。
⑦開發(fā)和測試環(huán)節(jié)對接過程中存在疑問繼續(xù)跟蹤。如果對方還在開發(fā)的接口項目管理同學要跟蹤進度。測試進行聯(lián)測,對方測試人員要進行配合看數(shù)據(jù)。當然如果測試可以自己看到別人系統(tǒng)后臺那要去看其他系統(tǒng)后臺的數(shù)據(jù)。
⑧上線研發(fā)要換成生產(chǎn)環(huán)境的測試地址,和對方提前溝通上線時間和上線順序,上線時是否要留相關(guān)人員。
第二是我怎么知道有這么多的系統(tǒng)上面對接的接口?那還是一樣的你要知道你的系統(tǒng)里面做什么事情,別的系統(tǒng)里面做什么事情,你的系統(tǒng)存了什么數(shù)據(jù)?別的系統(tǒng)存了什么數(shù)據(jù),你才知道我什么時候要找別人的系統(tǒng)來進行合作?那怎么去判斷呢?正常系統(tǒng)是有自己的規(guī)范,所涉及到的其他行業(yè)也有其他系統(tǒng)上面的規(guī)范。一個剛?cè)肼毜漠a(chǎn)品需要接手,那首先就是看后臺,比如說訂單管理里面有哪一些的字段,商品管理里面有哪一些的字段,這個系統(tǒng)里面存了什么數(shù)據(jù),有所涉及到的接口的,要去梳理接口上對接,注意區(qū)分接口提供方和接口調(diào)用方。
接口梳理規(guī)則:
①前端(app 或者小程序或者 h5 頁面等)調(diào)用別人系統(tǒng)的接口
②同步:同步指的是實時得到結(jié)果。異步:實時得不到結(jié)果,比如訂單系統(tǒng)把發(fā)貨單下發(fā)wms系統(tǒng),wms系統(tǒng)只能給到接收成功或者失敗,等到倉庫發(fā)完貨才調(diào)用 訂單系統(tǒng)接口告知發(fā)貨實際的結(jié)果。訂單需要多增加一個接口 接口發(fā)貨回執(zhí)。
③一般從數(shù)據(jù)上下游傳遞數(shù)據(jù)下游方,上游方調(diào)用下游方接口。箭頭指向誰,誰提供接口。數(shù)據(jù)流轉(zhuǎn)方向繪制箭頭,一般是推送,但是如果1個上游方對接 N 個下游,上游方會定義接口,改為下游拉取上游接口。
④考慮逆向流程:【要考慮正向和逆向,逆向取消,逆向售后。是否存在修改場景?】
接口文檔常用名詞:
①同步和異步。同步指的是同一時間處理,異步指的是不能實時處理,處理完結(jié)果再告知結(jié)果,會新增接口對接。
②拉取和推送,一般接口遵從誰是數(shù)據(jù)上游方,推送給下游,但是如果1個上游方對應N個下游方,這個時候上游機會提供拉取接口,下游都來拉數(shù)據(jù)。這樣因為減少上游方開發(fā)工作量。
③上報聯(lián)調(diào),跨系統(tǒng)對接時把接口調(diào)通。
④Mock。有時候上下游沒時間和開發(fā)聯(lián)調(diào),這個時候開發(fā)可以造數(shù)據(jù)自己先調(diào)。一般開發(fā)用postman工具 mock接口。
⑤調(diào)用地址/URL。生產(chǎn)環(huán)境測試環(huán)境
⑥API接口和 MQ都是跨對接方式,MQ【消息隊列/消息中間件】可以用于內(nèi)部系統(tǒng)對接非實時部分,具體看研發(fā)設(shè)計。
最后提一個面試題,很多面試官會問:和第三方系統(tǒng)對接時要做哪些產(chǎn)品工作?
①在業(yè)務正向和逆向流程調(diào)研完成之后校理系統(tǒng)流程,核理對接的AP1接口清單:我們需要調(diào)用三方哪些接口,三方需要調(diào)用我們哪些接口。
②在產(chǎn)品設(shè)計時和三方溝通接口輸入輸出字段,寫進PRD的接口傳值說明中。
③產(chǎn)品需求評審之后研發(fā)提測,測試測試,上線時間等項目計劃同步三方,研發(fā)測試上線協(xié)調(diào)三方配合相關(guān)任務。
④上線之后問題和需求跟蹤判別,如果涉及到三方系統(tǒng)的和三方產(chǎn)品進行溝通。
本文由 @產(chǎn)品速心丸 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)作者許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
該文觀點僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務
- 目前還沒評論,等你發(fā)揮!