0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何做一個api接口?

OBEason ? 來源:jf_88563726 ? 作者:jf_88563726 ? 2023-05-26 11:37 ? 次閱讀

程序員是公司里的技術(shù)崗位,是產(chǎn)品經(jīng)理最親密的伙伴。但是程序員可以理解產(chǎn)品經(jīng)理的工作,產(chǎn)品經(jīng)理卻不一定理解程序員的工作,所以經(jīng)常被無良程序員欺騙。從API接口這個維度,分析API的概念以及為什么要了解它,避免PM們在實際工作中對代碼技術(shù)一無所知。

在日常工作中,產(chǎn)品經(jīng)理負責推動項目進展。當他們與程序員對接時,問完成這個功能需要多少天,程序員給出了五天的回答。雖然你的預期時間只有三天,但是你除了相信他,按照承諾給他五天時間之外,也無能為力,最終導致項目的拖延。

你不知道這個函數(shù)有多少代碼,程序員的工作量有多大。他利用你的無知故意拖延你的項目進度,你是最后一個背黑鍋的。

程序員是公司里的終極技術(shù)崗位。他能理解我們的工作,但我們很難理解他們。為了防止PM在實際工作中受到無良程序員的傷害,本文從API接口這個維度分析了API的概念以及為什么要理解它,從而避免PM在實際工作中對代碼技術(shù)的無知。

一、API的概念

API,官方定義為應用編程接口。它指的是一些預定義的接口,用來提供應用程序和開發(fā)人員基于某種軟件或硬件可以訪問的一組例程,而不必訪問源代碼或了解內(nèi)部工作機制的細節(jié)。

二、為什么要理解API文檔?

既然API這么復雜,不屬于PM的工作范圍,為什么還需要我們費盡心思去理解呢?我們的目的是什么。

1.定義所需的接口服務。

API有很多種,最基礎的就是產(chǎn)品最需要的,比如短信API、地圖API、語音API等。如果我們的產(chǎn)品涉及到這個功能,就必須了解這個API,這樣才能在需求設計階段考慮的更全面。

2.掌握項目開發(fā)的工作量,合理安排計劃。

說白了就是防止被程序員騙。當你走過去的時候,你發(fā)現(xiàn)程序員正在勤奮地工作。不好意思,人家是外包,就是欺負你看不懂代碼。你生氣了嗎?但是,如果你知道接口的難度和工作量,并且明確他需要多長時間才能交給你,項目就不會被耽誤,也更有利于項目進程的進度。

3.聯(lián)合調(diào)試測試,識別項目風險點。

一些關(guān)鍵接口,那些數(shù)據(jù)量大,需要大數(shù)據(jù)壓力測量的接口,必須通過連接測試,測量其更大流量,優(yōu)化或設置限制,防止系統(tǒng)崩潰。

4.促進項目對接

如果PM懂一點技術(shù),就不會開明顯做不到的玩笑,但還是要程序員來做。從這個角度來說,也更有利于團隊溝通,更有利于PM和程序員之間的和諧,避免矛盾,不至于打翻友誼之舟。了解API可以讓PM對技術(shù)有更深刻的理解,更好的衡量開發(fā)工作量,制定功能內(nèi)容。

三。舉例說明API的重要性

優(yōu)點:

開發(fā)者A開發(fā)了軟件A,而開發(fā)者B正在開發(fā)軟件B,A想利用B的一些成果或功能來輔助開發(fā)軟件B,但不想完全輸入軟件A。我該怎么辦?于是A把軟件打包成一個函數(shù),放在B的軟件里。這個函數(shù)就是API。

如果沒有API,B必須經(jīng)歷軟件A的全過程,這需要花費大量的時間和精力,但如果是接口來訪問一些功能,就簡單方便了。想用就用,想拔就拔。

有一杯密封的果汁叫數(shù)據(jù)庫;果汁上面有一根吸管,叫API。想喝杯子里的果汁,因為是密封的,只能靠吸管插入,不然就喝不到果汁了。

在這個故事里,你屬于某個系統(tǒng)。要想獲得果汁,必須通過一根吸管來實現(xiàn),也就是一個接口,API,而這個API是數(shù)據(jù)庫中唯一的API。這樣,API就是一個提升項目功能和產(chǎn)品價值的輔助工具。

缺點:

由于API依賴于第三方軟件,訪問方在使用其他軟件包的功能的同時,為自己插入了一個監(jiān)視器,存在惠友友資源網(wǎng)數(shù)據(jù)泄露給第三方的危險。所以如果是公司的核心功能,更好使用內(nèi)部API。

四。總結(jié):萬物皆有聯(lián)系。

可能大家看了美國科幻大片,把程序員想象成了高智商的黑客。但現(xiàn)實是,大多數(shù)情況下,他們只負責修復bug,真正的源代碼只是在網(wǎng)上復制粘貼而已。所以不要被他的外表所迷惑,PM的應該知道他的優(yōu)優(yōu)資源網(wǎng)的工作量,只需要在團隊中給出明確的指令來管理項目的進度,大致了解程序員的工作內(nèi)容,這樣你就可以管理對接了。

最后,我想說,在產(chǎn)品行業(yè),一切都是相通的,PM不必質(zhì)疑自己的工作,也不必自卑。如果程序員是科學家,那么PM就是一個有友資源網(wǎng)的哲學家,只負責改造自然環(huán)境和人類社會的差異。其思維邏輯類似,程序員其實就是PM知識的技術(shù)流。

五、API的實際應用

請求示例:前往測試

Curl

PHP

PHPsdk

JAVA

C#

Python

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 {

// 請求示例 url 默認請求參數(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());

}

}


審核編輯黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8447

    瀏覽量

    150722
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1472

    瀏覽量

    61749
收藏 人收藏

    評論

    相關(guān)推薦

    如何做一個hpm6750evk2的bootloader?

    我正在做一個hpm6750evk2的bootloader。設計很簡單,boot工程代碼只做跳轉(zhuǎn)到1M后的APP工程代碼處,APP工程就是做的點燈的程序而已,boot、APP工程都是跑
    發(fā)表于 10-23 19:01

    用LM339做一個遲滯比較器,必須接正電源和負電源,輸出接口還得有上拉電阻,輸出的高低電平如何計算?

    用LM339做一個遲滯比較器,將正弦波信號轉(zhuǎn)換成方波信號。必須接正電源和
    發(fā)表于 09-23 06:35

    請問音頻信號如何做靜音檢測?

    具有5V偏置的音頻信號,音頻交流分量大小大概1、2V。有按鍵可以控制靜音,那么如何做一個檢測電路,檢測靜音呢?
    發(fā)表于 09-20 09:04

    如何使用合宙的DTU+業(yè)務云平臺,做一個溫濕度傳感器數(shù)據(jù)采集項目?

    使用合宙的DTU+業(yè)務云平臺,做一個溫濕度傳感器數(shù)據(jù)采集項目,超詳細教程。
    的頭像 發(fā)表于 09-18 11:11 ?328次閱讀
    如何使用合宙的DTU+業(yè)務云平臺,<b class='flag-5'>做一個</b>溫濕度傳感器數(shù)據(jù)采集項目?

    鴻蒙開發(fā)接口公共事件與通知:【FFI能力】 N-API在Android、iOS平臺應用的使用指導

    N-API接口可以實現(xiàn)ArkTS/TS/JS與C/C++(Native)之間的交互,ArkUI-X中支持的N-API接口情況和使用場景請見[FFI能力(N-
    的頭像 發(fā)表于 05-25 16:33 ?1809次閱讀
    鴻蒙開發(fā)<b class='flag-5'>接口</b>公共事件與通知:【FFI能力】 N-<b class='flag-5'>API</b>在Android、iOS平臺應用的使用指導

    鴻蒙開發(fā)接口公共事件與通知:【FFI能力(Node-API)】

    Node-API是封裝底層JavaScript運行時能力的套Native接口。OpenHarmony的N-API組件對Node-API
    的頭像 發(fā)表于 05-21 16:38 ?883次閱讀
    鴻蒙開發(fā)<b class='flag-5'>接口</b>公共事件與通知:【FFI能力(Node-<b class='flag-5'>API</b>)】

    請問STM32F103C8如何做成USB轉(zhuǎn)SPI的接口芯片?

    STM32F103C8如何做成USB轉(zhuǎn)SPI的接口芯片?
    發(fā)表于 04-23 08:01

    API接口,我能調(diào)取哪些數(shù)據(jù)?

    數(shù)據(jù)API接口
    藍蜂物聯(lián)網(wǎng)
    發(fā)布于 :2024年02月04日 17:43:18

    快遞預約上門取件API免費接口

    并發(fā) 接口地址 api.kdniao.com/api/OOrderS… 支持情況 1.支持的快遞公司:順豐速運、中通快遞、圓通速遞、韻達速遞、優(yōu)速快遞、EMS、宅急送、遠成快運(YCWL)、天地華宇、運東西網(wǎng)、品駿快遞、承諾達、
    的頭像 發(fā)表于 01-24 14:43 ?327次閱讀

    如何用小安派-Eyes-S1做一個電子木魚?

    2024年的第篇教程來了,本篇學習如何添加LVGL事件,并制作完成電子木魚(小美苦苦哀求,我略微出手而已)。祝大家2024積德累功,心想事成!接下來看看如何用小安派-Eyes-S1做一個
    的頭像 發(fā)表于 01-13 15:18 ?938次閱讀
    如何用小安派-Eyes-S1<b class='flag-5'>做一個</b>電子木魚?

    DP接口和HDMI接口的優(yōu)缺點 如何做出明智選擇?

    DP接口和HDMI接口的優(yōu)缺點 如何做出明智選擇? DP接口和HDMI接口是用于連接計算機和外部設備的
    的頭像 發(fā)表于 12-11 13:38 ?2232次閱讀

    如何做一個車載吸塵器PCBA方案

    車載吸塵器PCBA方案,是為滿足汽車內(nèi)部清潔需求而設計的種便攜式吸塵器方案。隨著人們對汽車內(nèi)部環(huán)境衛(wèi)生的要求日益提高,傳統(tǒng)的手動清潔方式已經(jīng)無法滿足需求。因此,研發(fā)出種便攜式吸塵器方案,成為
    的頭像 發(fā)表于 11-28 16:10 ?598次閱讀

    RGMII接口案例:二設備共享PHY

    最近項目中,F(xiàn)PGA通過多個RGMII接口與其他設備通信,在通信的過程中,有RGMII接口對端設備始終無法驅(qū)動,最后通過共享
    的頭像 發(fā)表于 11-27 16:47 ?7995次閱讀
    RGMII<b class='flag-5'>接口</b>案例:二<b class='flag-5'>個</b>設備共享<b class='flag-5'>一</b><b class='flag-5'>個</b>PHY

    如何通過PWM做一個呼吸燈

    接下來我們就來試試,通過PWM讓LED實現(xiàn)不同亮度的變化,也就是我們常見的呼吸燈了。 硬件接線 還是用這個LED燈,端連接電阻,再到5V高電平的引腳,另外
    的頭像 發(fā)表于 11-27 11:40 ?797次閱讀
    如何通過PWM<b class='flag-5'>做一個</b>呼吸燈

    教你做一個電子打火機

    現(xiàn)在隨著科技的發(fā)展,環(huán)保顯得越來越受大家重視,淘汰了很多傳統(tǒng)的產(chǎn)品,現(xiàn)在天然氣的打火機雖說還沒有被淘汰,但是隨著技術(shù)的發(fā)展,淘汰是難免的,今天就教大家做一個電子打火機,雖然談不上節(jié)能,大家可以做個參考,當做一個樂趣。
    的頭像 發(fā)表于 11-15 14:13 ?1734次閱讀