吴忠躺衫网络科技有限公司

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

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

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

什么是API

汽車電子技術(shù) ? 來源:碼農(nóng)與軟件時(shí)代 ? 作者:碼農(nóng)與軟件時(shí)代 ? 2023-02-14 14:54 ? 次閱讀

**一、什么是API?

**

對(duì)于普通吃瓜而言,API是到底是個(gè)啥真心聽不懂。下面我們來看一下實(shí)例:周末想出去玩,自已不想太累,索性打車,到了車上你告訴司機(jī),去某某地方,司機(jī)明白了,直接將你送到指定位置,而無須你去考慮如何走的問題。這里司機(jī)提供的是打車服務(wù),服務(wù)的提供者就是司機(jī),你就是服務(wù)的調(diào)用者或者使用者。

我們?cè)賮硪訧T的視角來描述下API是個(gè)啥?API(Application Programming Interface,應(yīng)用程序編程接口)是一些預(yù)先定義的函數(shù),目的是提供一種訪問函數(shù)的能力,而又無需訪問函數(shù)內(nèi)部的源碼或者理解內(nèi)部編寫的細(xì)節(jié)。

如果你來對(duì)比一下,可以發(fā)現(xiàn)打車服務(wù)和訪問函數(shù)的能力非常類似。API實(shí)質(zhì)上就是為別人或第三方提供服務(wù)的接口。

二、為什么會(huì)產(chǎn)生API?

前面說到API是為第三方提供服務(wù)的接口,那為什么軟件需要API呢,我們可以從軟件的提供者、使用者、開發(fā)者等幾個(gè)角度來說明:

從軟件提供者的角度來講,特別是“平臺(tái)型”軟件提供者,提供API供第三方應(yīng)用程序來調(diào)用,可以形成生態(tài),才能更有競爭力。如百度AI開放平臺(tái)提供語音、圖像、人臉與人體識(shí)別、視頻等技術(shù)的API,打造全球領(lǐng)先的人工智能服務(wù)平臺(tái)。。

從軟件使用者的角度來講,特別是大型電信運(yùn)營商,在建設(shè)內(nèi)部系統(tǒng)時(shí),一般會(huì)尋求從多家軟件廠商采購,避免被軟件提供商鎖定,出現(xiàn)“結(jié)婚容易離婚難”的窘境。如運(yùn)營商的運(yùn)營支撐系統(tǒng)包含客戶關(guān)系管理系統(tǒng)、計(jì)費(fèi)系統(tǒng)、呼叫中心、合作伙伴關(guān)系管理系統(tǒng)、ERP系統(tǒng)等,通常是幾家軟件提供商共建整個(gè)運(yùn)營支撐系統(tǒng)。

從應(yīng)用開發(fā)者的角度來講,特別是“內(nèi)容聚合系統(tǒng)”之類公司,通過調(diào)用開放的API,可以直接調(diào)用API來做自己的應(yīng)用,集成各大公司的內(nèi)容,并基于此做更高層次的創(chuàng)新。如今日頭條聚合了各家公司的內(nèi)容,外加大數(shù)據(jù)分析推薦系統(tǒng),形成個(gè)性化的服務(wù)。

三、API的幾種形式

1.本地調(diào)用

我們知道在本地調(diào)用非常地簡單,例如實(shí)現(xiàn)如下3個(gè)值的相加,就可以寫一個(gè)簡單的函數(shù),供主函數(shù)main()來調(diào)用。在執(zhí)行過程中,調(diào)用是發(fā)生在同一CPU、內(nèi)存地址空間:

圖片

2. RPC

那如果是不同機(jī)器上的不同程序間的調(diào)用應(yīng)該如何來做呢?ANDREW D. BIRRELL在論文《Implementing Remote Procedure Calls》給出了一種解決方案:RPC(Remote Procedure Calls,遠(yuǎn)程過程調(diào)用)。其主要思想是調(diào)用遠(yuǎn)程機(jī)器上的程序就像在本地機(jī)器的地址空間中一樣。隱藏分布式環(huán)境重要的部分:對(duì)參數(shù)和結(jié)果的編解碼、消息傳遞以及保留過程調(diào)用的語義。其基本流程圖如下所示:

圖片

①User以本地調(diào)用函數(shù)的方式去調(diào)用User-stub;

②User-stub生成消息并調(diào)用RPC Runtime;

③RPC Runtime將消息發(fā)送給遠(yuǎn)程RPC Runtime;

④遠(yuǎn)程RPC Runtime將請(qǐng)求消息交給Server-stub;

⑤Server-stub提取參數(shù)并調(diào)用Server;

⑥Server執(zhí)行業(yè)務(wù)邏輯,并將結(jié)果返回給Server-stub;

⑦Server-stub生成響應(yīng)消息,而后調(diào)用RPC Runtime;

⑧RPC Runtime將響應(yīng)消息發(fā)送給客戶端RPC Runtime;

⑨RPC Runtime將消息交給User-stub;

⑩User-stub提取結(jié)果信息,返回給User。

3. RESTFUL API

隨著互聯(lián)網(wǎng)的發(fā)展,使得這ICT領(lǐng)域開始融合,“如何開發(fā)在互聯(lián)網(wǎng)環(huán)境中使用的軟件”成為一個(gè)課題,也就是Web 應(yīng)用應(yīng)該如何運(yùn)轉(zhuǎn)?Roy Thomas Fielding認(rèn)為“一個(gè)由Web頁組成的網(wǎng)絡(luò),用戶通過選擇鏈接在應(yīng)用中前進(jìn)(狀態(tài)遷移),導(dǎo)致下一個(gè)頁面(應(yīng)用的下一個(gè)狀態(tài)的表述)被轉(zhuǎn)移給用戶,并且呈現(xiàn)給他們,以便他們來使用”,并在論文《架構(gòu)風(fēng)格和基于網(wǎng)絡(luò)的軟件架構(gòu)設(shè)計(jì)》給出了一種解決方案:REST(Representational State Transfer,表現(xiàn)層狀態(tài)轉(zhuǎn)化)。其主要特點(diǎn)為資源、統(tǒng)一接口、URI、無狀態(tài)。這里說明下資源和統(tǒng)一接口即:

u 資源:將網(wǎng)絡(luò)中任何實(shí)體都看成資源。可以是一段文本、一張圖片、一首歌曲、一個(gè)視頻。其具體的體現(xiàn)形式:文本可以用txt、HTML、XML、Json或二進(jìn)制等格式表現(xiàn)。

u 統(tǒng)一接口:REST架構(gòu)風(fēng)格規(guī)定,數(shù)據(jù)的增刪除查改對(duì)應(yīng)于HTTP方法,統(tǒng)一了數(shù)據(jù)操作的接口,如GET用來獲取資源,POST用來新建資源,PUT用來更新資源,DELETE用來刪除資源。

總的來說,REST可以理解為:使用URL表示資源,使用HTTP的GET\\PUT\\POST等方法進(jìn)行資源的操作。

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

    關(guān)注

    2

    文章

    1510

    瀏覽量

    62393
  • 源碼
    +關(guān)注

    關(guān)注

    8

    文章

    652

    瀏覽量

    29451
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4346

    瀏覽量

    62968
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    vc++ api函數(shù) (Windows API大全)

    Windows API大全,本書主要介紹VC++里API函數(shù)及其用法-WindowsAPI Daquan, the book introduces VC Lane API function
    發(fā)表于 10-14 11:45 ?32次下載

    JDBCTM 2.0 API

    The JDBCTM API is the JavaTM standard call-level API for database access. This documentcontains the final specification of the JDBC 2.0
    發(fā)表于 10-14 17:42 ?6次下載

    使用Java API技巧分析

    本文介紹了一些關(guān)于Java API安全和性能方面的簡單易用的技巧,其中包括保證API Key安全和開發(fā)Web Service方面中在框架方面選擇的一些建議。 程序員都喜歡使用API!例如為app
    發(fā)表于 09-27 14:09 ?3次下載

    分析API都有哪些特點(diǎn)

    好的API是怎樣的,應(yīng)該具備哪些特點(diǎn),作者對(duì)此進(jìn)行了詳細(xì)說明,并把API比作產(chǎn)品,主張編寫API時(shí)從用戶的角度換位思考。 如果用戶通過他們自己的代碼與你的代碼進(jìn)行交互,那么你將需要構(gòu)建一個(gè)AP
    發(fā)表于 09-28 17:38 ?11次下載

    如何使用API_api接口有什么優(yōu)點(diǎn)

    關(guān)于什么是API,通俗的解釋應(yīng)該是:一個(gè)組件(或程序庫)提供給開發(fā)者進(jìn)行編程使用的,通過代碼可以與之溝通的入口。比如說你下載了一個(gè)控件包,通過閱讀說明你知道應(yīng)該如何創(chuàng)建上下文、初始化、設(shè)置屬性、調(diào)用、回調(diào)、事件處理,這些就是這個(gè)控件包的API
    發(fā)表于 01-04 11:36 ?2.1w次閱讀

    REST API是什么,如何使用REST端口

    API是Application Programming Interface(應(yīng)用程序接口)的縮寫,它是拿來描述一個(gè)類庫的特征或是如何去運(yùn)用它。按照目前比較主流的分法,可以分為REST API和非
    的頭像 發(fā)表于 02-17 18:00 ?9414次閱讀
    REST <b class='flag-5'>API</b>是什么,如何使用REST端口

    什么是API,不同場景中的API

    當(dāng)公司構(gòu)建他們的應(yīng)用時(shí),他們把它們?cè)O(shè)計(jì)成一組交互的API。最容易理解的例子是Lyft(或者Uber)。你可能想在Lyft應(yīng)用中做一些事情,它們?cè)谀缓蠖紩?huì)觸發(fā)不同的API
    的頭像 發(fā)表于 08-10 11:20 ?2325次閱讀

    API+DevOps:華為云API Arts一體化平臺(tái),端到端呵護(hù)您的API

    API+ | 以API-First理論為基礎(chǔ),以API為核心構(gòu)建數(shù)字化生態(tài) 摘要:華為云API Arts是API全生命周期一體化協(xié)作平臺(tái),支
    的頭像 發(fā)表于 02-17 19:05 ?1167次閱讀

    API+DevOps:華為云API Arts一體化平臺(tái),端到端呵護(hù)您的API

    華為云API Arts是API全生命周期一體化協(xié)作平臺(tái),支持開發(fā)者一站式高效實(shí)現(xiàn)API設(shè)計(jì)、API開發(fā)、API測試、
    的頭像 發(fā)表于 03-01 15:45 ?840次閱讀
    <b class='flag-5'>API</b>+DevOps:華為云<b class='flag-5'>API</b> Arts一體化平臺(tái),端到端呵護(hù)您的<b class='flag-5'>API</b>

    為什么需要 API 網(wǎng)關(guān)?

    API 網(wǎng)關(guān)是 API 全生命周期管理的關(guān)鍵基礎(chǔ)組件,負(fù)責(zé)生產(chǎn)環(huán)境中 API 的配置、發(fā)布、版本回滾、安全、負(fù)載均衡等。API 網(wǎng)關(guān)是所有終端流量的入口,負(fù)責(zé)把終端的
    的頭像 發(fā)表于 05-04 17:47 ?830次閱讀
    為什么需要 <b class='flag-5'>API</b> 網(wǎng)關(guān)?

    企業(yè)怎么選擇API網(wǎng)關(guān)

    ? 一、API網(wǎng)關(guān)的用處 API網(wǎng)關(guān)我的分析中會(huì)用到以下三種場景。 1、Open API 企業(yè)需要將自身數(shù)據(jù)、能力等作為開發(fā)平臺(tái)向外開放,通常會(huì)以rest的方式向外提供。最好的例子就是淘寶開放平臺(tái)
    的頭像 發(fā)表于 05-23 11:05 ?706次閱讀
    企業(yè)怎么選擇<b class='flag-5'>API</b>網(wǎng)關(guān)

    api接口怎么使用

    本文就從API接口的維度,淺析API的概念以及為什么要了解它 一、API的概念 API,官方定義為應(yīng)用程序編程接口。就是把是一些預(yù)先定義的接口,用來提供應(yīng)用程序與開發(fā)人員基于某軟件或硬
    的頭像 發(fā)表于 05-24 14:44 ?1493次閱讀

    api網(wǎng)關(guān) kong 教程入門

    為什么使用API-Gateway 方便客戶端維護(hù)– 每個(gè)請(qǐng)求方不用管理多個(gè)api url,統(tǒng)一訪問api-gateway即可 接口重構(gòu)時(shí)調(diào)用方不須了解接口本身等拆分和聚合 客戶端無須關(guān)心接口協(xié)議
    的頭像 發(fā)表于 11-10 11:39 ?852次閱讀
    <b class='flag-5'>api</b>網(wǎng)關(guān) kong 教程入門

    華為云發(fā)布 CodeArts API,為 API 護(hù)航

    4 月 10 日,華為云正式發(fā)布 API 全生命周期管理一體化協(xié)作平臺(tái) CodeArts API,支持開發(fā)者高效實(shí)現(xiàn) API 設(shè)計(jì)、開發(fā)、測試、托管、運(yùn)維、變現(xiàn)的一站式體驗(yàn)。以 API
    的頭像 發(fā)表于 05-09 23:17 ?577次閱讀
    華為云發(fā)布 CodeArts <b class='flag-5'>API</b>,為 <b class='flag-5'>API</b> 護(hù)航

    api驅(qū)動(dòng)的云服務(wù)是什么意思?

    API驅(qū)動(dòng)的云服務(wù)是指利用API技術(shù)來驅(qū)動(dòng)和提供云服務(wù)的模式。在這種模式下,云服務(wù)提供商會(huì)公開一系列的API接口,允許開發(fā)者或應(yīng)用程序通過調(diào)用這些API來實(shí)現(xiàn)對(duì)云服務(wù)的訪問和操作。
    的頭像 發(fā)表于 11-14 10:06 ?246次閱讀
    澳门百家乐真人娱乐场| e世博百家乐官网娱乐场| 百家乐优博娱乐城| 百家乐官网软件官方| 百家乐英皇赌场娱乐网规则| 百家乐官网电投网址| 大发888娱乐城登陆| 新利百家乐官网的玩法技巧和规则| bet365忠实奖金| 最好的百家乐博彩网站| 百家乐官网赌坊| 星河百家乐的玩法技巧和规则| 网上玩百家乐官网会出签吗| 博盈国际娱乐城| 游戏房百家乐赌博图片| 皇冠百家乐官网代理网址| 六合彩资料| 百家乐讲谈| 百家乐官网补第三张牌规则| 娱乐城注册送金| 网上百家乐赌场娱乐网规则| 博之道百家乐官网的玩法技巧和规则 | 淮北市| 全讯网433234| 百家乐的保单打法| 广州百家乐官网赌场| 红桃K百家乐娱乐城| 做生意招财的花有哪些| 百家乐官网视频聊天游戏| 大发888注册网址| 真人百家乐平台下载| 百家乐官网游戏单机牌| 丰城市| 大发888官方pt老虎机大咖炸金花网页扎金花 | 百家乐官网推荐| 百家乐官网全自动分析软件| 棋牌游戏源码| 澳门百家乐家用保险柜| 百家乐官网永利娱乐| 百家乐官网玩法及技巧| 皇冠正网开户|