• <track id="ur0kg"><ruby id="ur0kg"><tt id="ur0kg"></tt></ruby></track>
    <tr id="ur0kg"><strong id="ur0kg"><menu id="ur0kg"></menu></strong></tr>
  • <pre id="ur0kg"></pre><pre id="ur0kg"><label id="ur0kg"><menu id="ur0kg"></menu></label></pre><acronym id="ur0kg"><strong id="ur0kg"><listing id="ur0kg"></listing></strong></acronym>

  • <td id="ur0kg"><ruby id="ur0kg"></ruby></td>

    <td id="ur0kg"></td>

      <acronym id="ur0kg"><label id="ur0kg"><listing id="ur0kg"></listing></label></acronym>
    1. 安陽網站建設:產品經理如何繞開API的坑

      安陽網站建設:產品經理如何繞開API的坑

      更新時間

      2017-06-15


      剛接觸產品工作時,對接口(API)一片空白,不睬解接口(API)是什么?更別說能看懂接口文檔了,在接口上踩了很多坑。

      比如這些場景:

      場景1:開需求會,提了新的需求,開發說,你這個需求太復雜,光接口就有20幾個,根本做不完。我一聽就蒙了,雖然表示懷疑,卻無力辯駁。

      場景2:好不容易理好接口,提了新的需求,,開發說,你把讀寫接口搞混了,不成能一個接口實現所有功能。

      場景3:其他部門向我提了兩個接口需求,我找到開發完成接口后交付給需求方,結果需求方說接口的響應時間和并發數達不到要求,得推倒重做,oh my god!

      究竟接口是什么呢?又如何看懂接口文檔?接口性能對功能的影響是什么呢?如安在產品需求中理清接口呢?這篇文章將解答你的疑惑。

      一、API是什么?

      API是應用程序編程接口,如何理解呢?

      API就好像是一個傳輸數據的通道,入口需要請求數據,就好像是通關密碼,而出口需要返回結果。

      接口的使用方不需要關心接口是如何實現的,他只關心能不克不及拿到接口最后的返回結果。

      接口的提供方需要定義接口請求參數、響應內容等,還需要關注接口的性能,是否能滿足高并發的調用,接口的不變性如何……

      二、如何看懂接口文檔

      以一個真實的接口文檔做范例,給大家講解:

      接口一般分為以下幾個部分:

      1、接口描述

      簡單描述接口的邏輯和作用

      2、接口地址

      接口的正式url和接口測試的url,需求方通過調用接口url,獲取響應內容

      3、請求方法

      一般來說,接口最常見的請求方法為GET和POST兩種方式,即讀接口和寫接口。通過這兩種方式,實現對數據的增刪查改。刪查改本質都是寫的動作。

      4、請求參數

      即需要請求的字段名的名稱和規則:

      都是哪些字段,字段的類型是什么,是否必填字段等等

      5、響應內容

      接口返回的字段名稱和規則

      注意:大部分開發往往不會把所有的字段羅列,只會列出比力重要的字段。

      當你發現,接口文檔中沒有你需求的字段,別著急找開發,可以看下實例中,有沒有需求的字段。

      比如這個文檔,你可以很明顯的發現,響應內容中缺少了數據寫入狀態這個字段,但是在后續實例中,是包含has sucess這個字段的。

      6、錯誤代碼

      對接口的錯誤用代碼進行歸類,以便能快速找到錯誤原因,解決問題。

      7、實例

      實際調用時的響應的內容。

      三、接口性能

      不同的業務場景對于接口性能的要求是各不相同的,所以在做接口之前,必然要開發討論,正在做的接口是否能滿足調用的需求,未來是否會增加新的調用方,擴展性如何?不然就會出現,前文中場景3的悲劇。

      接口如何優化,pm可以不消了解,由開發去把關,但我們需要知道接口性能的核心指標。

      1、接口響應時間、并發數

      接口響應時間:

      從請求端發送一個請求開始,到接收到響應結果所經歷的時間。

      并發數:

      指同時拜候辦事器站點的連接數。

      可以進行簡單估算,如果響應時間50,一分鐘就可以連接超過50*60=3000次,一個小時就可以連接超過3000*60=180000次


      如果有20個線程,那秒并發可以超過100。

      實際的并發數并不總是符合我們的期望,需要壓測或者實際使用才能知道接口能支持的最大并發數是多少。

      響應時間越短,多線程并發數越高,接口性能越好。

      不是所有的業務場景都需要“最好”的性能,滿足業務場景即可。

      2、線程

      一個程序有多個進程,一個進程有多個線程。

      如果把上課的過程比作進程,那么每個學生就是一個線程,CPU是老師,教室是內存,他們共享教室,即線程共享進程的內存空間。每一個時刻,只能一個學生問老師(CPU)問題,老師回答完畢,接著回答下一個學生問題。

      三、如安在產品需求中理清接口1、如何拆解接口

      大家牢記一句話,接口分讀接口和寫接口。

      不管多復雜的需求,涉及到多少個接口,其本質就是讀接口和寫接口。

      舉幾個例子:

      游戲點券充值接口獲取用戶列表接口評論標識表記標幟精選接口投放卡券接口

      其中,1、3、4都是寫接口,請求方式為POST,因為都涉及到寫入相關數據的動作。2是讀接口,請求方式為GET,涉及讀取和查詢數據。

      這樣來看,接口貌似很好理解,有寫入數據的就是寫接口,有讀取數據就是讀接口

      但是在理產品需求時,產品小白常常理不清楚功能對應的接口,解決辦法很簡單,就是拆解需求。

      比如我們要設計一個身份證實名認證的功能,需要滿足一個身份信息只能實名認證一個賬號,如果用戶認證了數據庫里已經存在的身份證,那么會提醒用戶身份信息被占用。

      首先,我們需要拆解需求:

      實名認證是針對未實名的用戶,已實名過的用戶無需再進行實名,所以我們需要一個查詢接口還需要一個寫接口,讓用戶去寫入身份信息或修改身份信息因為一對一的要求,所以還需要一個查詢數據庫是否存在已有的身份信息某些用戶實名后,可能會因為各種理由,想解除實名,所以還需要一個刪除的接口

      其次我們需要明確接口傳輸的字段

      2、接口的請求和響應字段

      (1)接口需要請求哪些字段,是否必填,字段的格式有什么要求嗎?

      比如上面提到的(3)查詢數據庫是否存在已有的身份信息,請求字段為會員ID,姓名,身份證號,均為必填字段,姓名首先必需得純中文,身份證號也必需滿足位數要求。

      (2)接口需要返回哪些字段,是否必填,字段的格式有什么要求嗎?

      原理同上

      3、最后啰嗦一些注意事項

      除了功能和邏輯外,還需要注意接口的異常和錯誤情況,

      (1)前端做好交互,提示用戶,以免因為接口不不變,導致線上bug,而前端缺乏引導,導致用戶不克不及正常操作,對產品頗多怨言。

      (2)對于某些重要的功能,還要做好兩手準備,準備兩個接口,一個接口掛掉還可以用別的一個接口。




      相關標簽
      亚洲啪啪视频
    2. <track id="ur0kg"><ruby id="ur0kg"><tt id="ur0kg"></tt></ruby></track>
      <tr id="ur0kg"><strong id="ur0kg"><menu id="ur0kg"></menu></strong></tr>
    3. <pre id="ur0kg"></pre><pre id="ur0kg"><label id="ur0kg"><menu id="ur0kg"></menu></label></pre><acronym id="ur0kg"><strong id="ur0kg"><listing id="ur0kg"></listing></strong></acronym>

    4. <td id="ur0kg"><ruby id="ur0kg"></ruby></td>

      <td id="ur0kg"></td>

        <acronym id="ur0kg"><label id="ur0kg"><listing id="ur0kg"></listing></label></acronym>