程序員是公司里的技術(shù)崗位,是產(chǎn)品經(jīng)理最親密的伙伴。但是程序員可以理解產(chǎn)品經(jīng)理的工作,產(chǎn)品經(jīng)理卻不一定理解程序員的工作,所以經(jīng)常被無良程序員欺騙。從API接口這個(gè)維度,分析API的概念以及為什么要了解它,避免PM們?cè)趯?shí)際工作中對(duì)代碼技術(shù)一無所知。
在日常工作中,產(chǎn)品經(jīng)理負(fù)責(zé)推動(dòng)項(xiàng)目進(jìn)展。當(dāng)他們與程序員對(duì)接時(shí),問完成這個(gè)功能需要多少天,程序員給出了五天的回答。雖然你的預(yù)期時(shí)間只有三天,但是你除了相信他,按照承諾給他五天時(shí)間之外,也無能為力,最終導(dǎo)致項(xiàng)目的拖延。
你不知道這個(gè)函數(shù)有多少代碼,程序員的工作量有多大。他利用你的無知故意拖延你的項(xiàng)目進(jìn)度,你是最后一個(gè)背黑鍋的。
程序員是公司里的終極技術(shù)崗位。他能理解我們的工作,但我們很難理解他們。為了防止PM在實(shí)際工作中受到無良程序員的傷害,本文從API接口這個(gè)維度分析了API的概念以及為什么要理解它,從而避免PM在實(shí)際工作中對(duì)代碼技術(shù)的無知。
一、API的概念
API,官方定義為應(yīng)用編程接口。它指的是一些預(yù)定義的接口,用來提供應(yīng)用程序和開發(fā)人員基于某種軟件或硬件可以訪問的一組例程,而不必訪問源代碼或了解內(nèi)部工作機(jī)制的細(xì)節(jié)。
二、為什么要理解API文檔?
既然API這么復(fù)雜,不屬于PM的工作范圍,為什么還需要我們費(fèi)盡心思去理解呢?我們的目的是什么。
1.定義所需的接口服務(wù)。
API有很多種,最基礎(chǔ)的就是產(chǎn)品最需要的,比如短信API、地圖API、語音API等。如果我們的產(chǎn)品涉及到這個(gè)功能,就必須了解這個(gè)API,這樣才能在需求設(shè)計(jì)階段考慮的更全面。
2.掌握項(xiàng)目開發(fā)的工作量,合理安排計(jì)劃。
說白了就是防止被程序員騙。當(dāng)你走過去的時(shí)候,你發(fā)現(xiàn)程序員正在勤奮地工作。不好意思,人家是外包,就是欺負(fù)你看不懂代碼。你生氣了嗎?但是,如果你知道接口的難度和工作量,并且明確他需要多長(zhǎng)時(shí)間才能交給你,項(xiàng)目就不會(huì)被耽誤,也更有利于項(xiàng)目進(jìn)程的進(jìn)度。
3.聯(lián)合調(diào)試測(cè)試,識(shí)別項(xiàng)目風(fēng)險(xiǎn)點(diǎn)。
一些關(guān)鍵接口,那些數(shù)據(jù)量大,需要大數(shù)據(jù)壓力測(cè)量的接口,必須通過連接測(cè)試,測(cè)量其更大流量,優(yōu)化或設(shè)置限制,防止系統(tǒng)崩潰。
4.促進(jìn)項(xiàng)目對(duì)接
如果PM懂一點(diǎn)技術(shù),就不會(huì)開明顯做不到的玩笑,但還是要程序員來做。從這個(gè)角度來說,也更有利于團(tuán)隊(duì)溝通,更有利于PM和程序員之間的和諧,避免矛盾,不至于打翻友誼之舟。了解API可以讓PM對(duì)技術(shù)有更深刻的理解,更好的衡量開發(fā)工作量,制定功能內(nèi)容。
三。舉例說明API的重要性
優(yōu)點(diǎn):
開發(fā)者A開發(fā)了軟件A,而開發(fā)者B正在開發(fā)軟件B,A想利用B的一些成果或功能來輔助開發(fā)軟件B,但不想完全輸入軟件A。我該怎么辦?于是A把軟件打包成一個(gè)函數(shù),放在B的軟件里。這個(gè)函數(shù)就是API。
如果沒有API,B必須經(jīng)歷軟件A的全過程,這需要花費(fèi)大量的時(shí)間和精力,但如果是接口來訪問一些功能,就簡(jiǎn)單方便了。想用就用,想拔就拔。
有一杯密封的果汁叫數(shù)據(jù)庫;果汁上面有一根吸管,叫API。想喝杯子里的果汁,因?yàn)槭敲芊獾模荒芸课懿迦?,不然就喝不到果汁了?/p>
在這個(gè)故事里,你屬于某個(gè)系統(tǒng)。要想獲得果汁,必須通過一根吸管來實(shí)現(xiàn),也就是一個(gè)接口,API,而這個(gè)API是數(shù)據(jù)庫中唯一的API。這樣,API就是一個(gè)提升項(xiàng)目功能和產(chǎn)品價(jià)值的輔助工具。
缺點(diǎn):
由于API依賴于第三方軟件,訪問方在使用其他軟件包的功能的同時(shí),為自己插入了一個(gè)監(jiān)視器,存在惠友友資源網(wǎng)數(shù)據(jù)泄露給第三方的危險(xiǎn)。所以如果是公司的核心功能,更好使用內(nèi)部API。
四??偨Y(jié):萬物皆有聯(lián)系。
可能大家看了美國科幻大片,把程序員想象成了高智商的黑客。但現(xiàn)實(shí)是,大多數(shù)情況下,他們只負(fù)責(zé)修復(fù)bug,真正的源代碼只是在網(wǎng)上復(fù)制粘貼而已。所以不要被他的外表所迷惑,PM的應(yīng)該知道他的優(yōu)優(yōu)資源網(wǎng)的工作量,只需要在團(tuán)隊(duì)中給出明確的指令來管理項(xiàng)目的進(jìn)度,大致了解程序員的工作內(nèi)容,這樣你就可以管理對(duì)接了。
最后,我想說,在產(chǎn)品行業(yè),一切都是相通的,PM不必質(zhì)疑自己的工作,也不必自卑。如果程序員是科學(xué)家,那么PM就是一個(gè)有友資源網(wǎng)的哲學(xué)家,只負(fù)責(zé)改造自然環(huán)境和人類社會(huì)的差異。其思維邏輯類似,程序員其實(shí)就是PM知識(shí)的技術(shù)流。
五、API的實(shí)際應(yīng)用
請(qǐng)求示例:前往測(cè)試
Curl
PHP
PHPsdk
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URL;
import java.nio.charset.Charset;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.PrintWriter;
import java.net.URLConnection;
public class Example {
private static String readAll(Reader rd) throws IOException {
StringBuilder sb = new StringBuilder();
int cp;
while ((cp = rd.read()) != -1) {
sb.append((char) cp);
}
return sb.toString();
}
public static JSONObject postRequestFromUrl(String url, String body) throws IOException, JSONException {
URL realUrl = new URL(url);
URLConnection conn = realUrl.openConnection();
conn.setDoOutput(true);
conn.setDoInput(true);
PrintWriter out = new PrintWriter(conn.getOutputStream());
out.print(body);
out.flush();
InputStream instream = conn.getInputStream();
try {
BufferedReader rd = new BufferedReader(new InputStreamReader(instream, Charset.forName("UTF-8")));
String jsonText = readAll(rd);
JSONObject json = new JSONObject(jsonText);
return json;
} finally {
instream.close();
}
}
public static JSONObject getRequestFromUrl(String url) throws IOException, JSONException {
URL realUrl = new URL(url);
URLConnection conn = realUrl.openConnection();
InputStream instream = conn.getInputStream();
try {
BufferedReader rd = new BufferedReader(new InputStreamReader(instream, Charset.forName("UTF-8")));
String jsonText = readAll(rd);
JSONObject json = new JSONObject(jsonText);
return json;
} finally {
instream.close();
}
}
public static void main(String[] args) throws IOException, JSONException {
// 請(qǐng)求示例 url 默認(rèn)請(qǐng)求參數(shù)已經(jīng)URL編碼處理
String url = "https://api-gw.onebound.cn/taobao/item_get/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&num_iid=652874751412&is_promotion=1";
JSONObject json = getRequestFromUrl(url);
System.out.println(json.toString());
}
}
審核編輯黃宇
-
接口
+關(guān)注
關(guān)注
33文章
9296瀏覽量
155600 -
API
+關(guān)注
關(guān)注
2文章
1959瀏覽量
65719
發(fā)布評(píng)論請(qǐng)先 登錄
淘寶天貓上貨API接口技術(shù)指南

深度解析淘寶API接口:功能、限制與最佳實(shí)踐
RESTful API設(shè)計(jì)原則: 構(gòu)建易用、可擴(kuò)展的API接口
什么是 API接口?
揭秘淘寶詳情 API 接口:解鎖電商數(shù)據(jù)應(yīng)用新玩法
產(chǎn)品評(píng)論獲取API接口

產(chǎn)品分類管理API接口

產(chǎn)品下架與刪除API接口

產(chǎn)品添加與上架API接口設(shè)計(jì)指南

產(chǎn)品詳情查詢API接口

產(chǎn)品搜索與過濾API接口

產(chǎn)品列表獲取API接口詳解

電商API集成入門:從零開始搭建高效接口

API接口有哪些常見的安全問題

評(píng)論