国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Web API 和 API 的區(qū)別編寫(xiě)api

這篇具有很好參考價(jià)值的文章主要介紹了Web API 和 API 的區(qū)別編寫(xiě)api。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

編寫(xiě)api

自從Roy Fielding博士在2000年他的博士論文中提出(Representational State Transfer)風(fēng)格的軟件架構(gòu)模式后,REST就基本上迅速取代了復(fù)雜而笨重的SOAP,成為Web API的標(biāo)準(zhǔn)了。

什么是Web API呢?

1. Web API 和 API 的區(qū)別

1.1 API的概念

API(Application Programming Interface,應(yīng)用程序編程接口)是一些預(yù)先定義的函數(shù),目的是提供應(yīng)用程序與開(kāi)發(fā)人員基于某軟件或硬件得以訪問(wèn)一組例程的能力,而又無(wú)需訪問(wèn)源碼,無(wú)需理解其內(nèi)部工作機(jī)制細(xì)節(jié),只需直接調(diào)用使用即可。

舉例解釋什么是API。 例如, ? C語(yǔ)言中有一個(gè)函數(shù) fopen()可以打開(kāi)硬盤(pán)上的文件,這個(gè)函數(shù)對(duì)于我們來(lái)說(shuō),就是一個(gè)C語(yǔ)言提供的打開(kāi)文件的工具。 ? javascript中有一個(gè)函數(shù)alert()可以在頁(yè)面彈一個(gè)提示框,這個(gè)函數(shù)就是js提供的一個(gè)彈框工具。 這些工具(函數(shù))由編程語(yǔ)言提供,內(nèi)部的實(shí)現(xiàn)已經(jīng)封裝好了,我們只要學(xué)會(huì)靈活的使用這些工具即可。

1.2 Web API的概念

? Web API 是瀏覽器提供的一套操作瀏覽器功能和頁(yè)面元素的 API ( BOM 和 DOM )。

? 現(xiàn)階段我們主要針對(duì)于瀏覽器講解常用的 API , 主要針對(duì)瀏覽器做交互效果。比如我們想要瀏覽器彈出一個(gè)警示框, 直接使用 alert(‘彈出’)

?? 因?yàn)?Web API 很多,所以我們將這個(gè)階段稱(chēng)為 Web APIs。

? 此處的 Web API 特指瀏覽器提供的一系列API(很多函數(shù)或?qū)ο蠓椒?,即操作網(wǎng)頁(yè)的一系列工具。例如:操作html標(biāo)簽、操作頁(yè)面地址的方法。

1.3 API 和 Web API 總結(jié)

  1. API 是為我們程序員提供的一個(gè)接口(taobao平臺(tái)API接口調(diào)用),幫助我們實(shí)現(xiàn)某種功能,我們會(huì)使用就可以了,不必糾結(jié)內(nèi)部如何實(shí)現(xiàn)
  2. Web API 主要是針對(duì)于瀏覽器提供的接口,主要針對(duì)于瀏覽器做交互效果。
  3. Web API 一般都有輸入和輸出(函數(shù)的傳參和返回值),Web API 很多都是方法(函數(shù))
  4. 學(xué)習(xí) Web API 可以結(jié)合前面學(xué)習(xí)內(nèi)置對(duì)象方法的思路學(xué)習(xí)

如果我們想要獲取一篇Blog,輸入http://localhost:9000/blog/123,就可以看到id為123的Blog頁(yè)面,但這個(gè)結(jié)果是HTML頁(yè)面,它同時(shí)混合包含了Blog的數(shù)據(jù)和Blog的展示兩個(gè)部分。對(duì)于用戶來(lái)說(shuō),閱讀起來(lái)沒(méi)有問(wèn)題,但是,如果機(jī)器讀取,就很難從HTML中解析出Blog的數(shù)據(jù)。

如果一個(gè)URL返回的不是HTML,而是機(jī)器能直接解析的數(shù)據(jù),這個(gè)URL就可以看成是一個(gè)Web API。比如,讀取http://localhost:9000/api/blogs/123,如果能直接返回Blog的數(shù)據(jù),那么機(jī)器就可以直接讀取。

REST就是一種設(shè)計(jì)API的模式。最常用的數(shù)據(jù)格式是JSON。由于JSON能直接被JavaScript讀取,所以,以JSON格式編寫(xiě)的REST風(fēng)格的API具有簡(jiǎn)單、易讀、易用的特點(diǎn)。

編寫(xiě)API有什么好處呢?由于API就是把Web App的功能全部封裝了,所以,通過(guò)API操作數(shù)據(jù),可以極大地把前端和后端的代碼隔離,使得后端代碼易于測(cè)試,前端代碼編寫(xiě)更簡(jiǎn)單。

一個(gè)API也是一個(gè)URL的處理函數(shù),我們希望能直接通過(guò)一個(gè)@api來(lái)把函數(shù)變成JSON格式的REST API,這樣,獲取注冊(cè)用戶可以用一個(gè)API實(shí)現(xiàn)如下:

@get('/api/users')
def api_get_users(*, page='1'):
    page_index = get_page_index(page)
    num = yield from User.findNumber('count(id)')
    p = Page(num, page_index)
    if num == 0:
        return dict(page=p, users=())
    users = yield from User.findAll(orderBy='created_at desc', limit=(p.offset, p.limit))
    for u in users:
        u.passwd = '******'
    return dict(page=p, users=users)

只要返回一個(gè)dict,后續(xù)的response這個(gè)middleware就可以把結(jié)果序列化為JSON并返回。

我們需要對(duì)Error進(jìn)行處理,因此定義一個(gè)APIError,這種Error是指API調(diào)用時(shí)發(fā)生了邏輯錯(cuò)誤(比如用戶不存在),其他的Error視為Bug,返回的錯(cuò)誤代碼為internalerror。

客戶端調(diào)用API時(shí),必須通過(guò)錯(cuò)誤代碼來(lái)區(qū)分API調(diào)用是否成功。錯(cuò)誤代碼是用來(lái)告訴調(diào)用者出錯(cuò)的原因。很多API用一個(gè)整數(shù)表示錯(cuò)誤碼,這種方式很難維護(hù)錯(cuò)誤碼,客戶端拿到錯(cuò)誤碼還需要查表得知錯(cuò)誤信息。更好的方式是用字符串表示錯(cuò)誤代碼,不需要看文檔也能猜到錯(cuò)誤原因。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-424780.html

到了這里,關(guān)于Web API 和 API 的區(qū)別編寫(xiě)api的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Spring Boot 編寫(xiě) API 的 10條最佳實(shí)踐

    10 個(gè)最佳實(shí)踐,讓您像專(zhuān)業(yè)人士一樣編寫(xiě) Spring Boot API,并結(jié)合編碼示例和解釋?zhuān)?清晰一致的資源命名:使用準(zhǔn)確反映 API 管理的資源的名詞(例如,/products、/users)。 標(biāo)準(zhǔn)化 HTTP 方法:遵循 CRUD 操作的 RESTful 約定(CREATE: POST、READ: GET、UPDATE: PUT、DELETE:DELETE)。 有意義

    2024年04月28日
    瀏覽(35)
  • 編寫(xiě)http接口api及接口自動(dòng)化測(cè)試

    編寫(xiě)http接口api及接口自動(dòng)化測(cè)試

    片言 此文中代碼都是筆者工作中源碼,所以不會(huì)很完整,主要摘常見(jiàn)場(chǎng)景的api片段用以舉例說(shuō)明 另:此文主要針對(duì)自動(dòng)化測(cè)試人員,尤其有python基礎(chǔ)閱讀更佳。 筆者使用 python3.6 + postgresql10 + flask 0.12 的環(huán)境 場(chǎng)景介紹? 我們要實(shí)現(xiàn)后臺(tái)管理中的 用戶管理 功能,實(shí)現(xiàn)對(duì)用戶的增

    2024年04月16日
    瀏覽(34)
  • Web API 基礎(chǔ) (Web Workers API)

    Web API 基礎(chǔ) (Web Workers API)

    Web Workers API Web Workers是一種讓W(xué)eb內(nèi)容在后臺(tái)線程中運(yùn)行腳本的簡(jiǎn)單方法。 工作線程可以在不干擾用戶界面的情況下執(zhí)行任務(wù) 。此外,它們還可以使用 XMLHttpRequest (盡管 responseXML 和 channel 屬性總是為空)或 fetch (沒(méi)有此類(lèi)限制)執(zhí)行I/O。工作線程一旦被創(chuàng)建,就可以通過(guò)向JavaSc

    2024年02月07日
    瀏覽(24)
  • 如何通過(guò)數(shù)據(jù)驗(yàn)證防止 Web API 攻擊 - Web API 安全指南

    如何通過(guò)數(shù)據(jù)驗(yàn)證防止 Web API 攻擊 - Web API 安全指南

    充分的數(shù)據(jù)保護(hù)和用戶保密是網(wǎng)頁(yè)開(kāi)發(fā)者的主要責(zé)任。因此,在構(gòu)建 API 終端時(shí),確保最高可能的安全性至關(guān)重要。 應(yīng)用程序安全是客戶端和服務(wù)器開(kāi)發(fā)者共同的責(zé)任,一方的疏忽可能會(huì)造成災(zāi)難性后果。統(tǒng)計(jì)數(shù)據(jù)顯示,2023 年的數(shù)據(jù)泄露導(dǎo)致全球超過(guò) 800 萬(wàn)個(gè)數(shù)據(jù)記錄暴露。

    2024年04月15日
    瀏覽(21)
  • api接口和接口的區(qū)別

    在日常的學(xué)習(xí)或工作過(guò)程中,會(huì)聽(tīng)到接口和api的兩種說(shuō)法,但是并不清楚兩者有什么區(qū)別,下面總結(jié)一下他人的回答以及說(shuō)下我的理解。 接口: 日常生活中的接口: 拿手機(jī)充電口舉例,有Micro USB接口的,有type-c接口的,還有Lightning接口(ios設(shè)備),這三個(gè)接口就是一個(gè)接口

    2024年02月04日
    瀏覽(14)
  • 【vue3.0 組合式API與選項(xiàng)式API是什么,有什么區(qū)別】

    Vue3.0中引入了組合式API(Composition API),同時(shí)保留了選項(xiàng)式API(Options API)。兩種 API 風(fēng)格都能夠覆蓋大部分的應(yīng)用場(chǎng)景。它們只是同一個(gè)底層系統(tǒng)所提供的兩套不同的接口。實(shí)際上,選項(xiàng)式 API 是在組合式 API 的基礎(chǔ)上實(shí)現(xiàn)的!關(guān)于 Vue 的基礎(chǔ)概念和知識(shí)在它們之間都是通用的

    2024年02月10日
    瀏覽(24)
  • Go-gin-example 添加注釋 第一部分 新建項(xiàng)目及api編寫(xiě)

    Go-gin-example 添加注釋 第一部分 新建項(xiàng)目及api編寫(xiě)

    =_= 學(xué)習(xí)煎魚(yú)大佬的該項(xiàng)目 煎魚(yú)大佬網(wǎng)站 原github地址 個(gè)人github項(xiàng)目地址,希望得到一點(diǎn)star Go Modules 是go的 依賴(lài)包管理 工具,現(xiàn)在的go版本自動(dòng)打開(kāi)modules,目前的 go get 命令也是需要進(jìn)行初始化才能進(jìn)行拉取 在準(zhǔn)備的文件夾的終端中執(zhí)行 go env -w GOPROXY=... :設(shè)置 GOPROXY 代理,這

    2024年01月23日
    瀏覽(17)
  • 什么是 SPI,和API有什么區(qū)別?

    Java 中區(qū)分 API 和 SPI,通俗的講:API 和 SPI 都是相對(duì)的概念,他們的差別只在語(yǔ)義上,API 直接被應(yīng)用開(kāi)發(fā)人員使用,SPI 被框架擴(kuò)展人員使用。 API Application Programming Interface 大多數(shù)情況下,都是實(shí)現(xiàn)方來(lái)制定接口并完成對(duì)接口的不同實(shí)現(xiàn),調(diào)用方僅僅依賴(lài)卻無(wú)權(quán)選擇不同實(shí)現(xiàn)。

    2024年02月12日
    瀏覽(19)
  • 微服務(wù)、SOA 和 API 之間的區(qū)別

    在軟件開(kāi)發(fā)中,組織的投資方式發(fā)生了重大轉(zhuǎn)變,部署了面向架構(gòu)的方法。這一切都始于 SOA,然后轉(zhuǎn)變?yōu)槲覀兎Q(chēng)之為微服務(wù)的東西。添加到其中的是另一個(gè)概念,指定為 API。 在過(guò)去的幾年里,SOA 和微服務(wù)仍然是討論的話題。隨著時(shí)間的推移,組織感到需要轉(zhuǎn)變其工作流程并

    2024年02月07日
    瀏覽(11)
  • JavaScript--Web API

    JavaScript--Web API

    DOM(Document Object Model —— 文檔對(duì)象模型) 是用來(lái)呈現(xiàn)以及與任意 HTML 或 XML 文檔交互的 API。 DOM 是瀏覽器提供的一套專(zhuān)門(mén)用于 操作網(wǎng)頁(yè)內(nèi)容 的功能 作用:開(kāi)發(fā)網(wǎng)頁(yè)內(nèi)容特效和實(shí)現(xiàn)用戶交互 節(jié)點(diǎn)是文檔樹(shù)的組成部分, 每一個(gè)節(jié)點(diǎn)都是一個(gè) DOM 對(duì)象 ,主要分為元素節(jié)點(diǎn)、屬性節(jié)

    2024年02月05日
    瀏覽(20)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包