go語言api文檔學習 go語言開發(fā)api

GO語言(十三):使用 Go 和 Gin 開發(fā) RESTful API(下)

當客戶端在 發(fā)出POST請求時/albums,您希望將請求正文中描述的專輯添加到現(xiàn)有專輯數(shù)據(jù)中。

成都創(chuàng)新互聯(lián)公司服務項目包括雨花臺網(wǎng)站建設(shè)、雨花臺網(wǎng)站制作、雨花臺網(wǎng)頁制作以及雨花臺網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,雨花臺網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務的客戶以成都為中心已經(jīng)輻射到雨花臺省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!

為此,您將編寫以下內(nèi)容:

1、編寫代碼

a.添加代碼以將專輯數(shù)據(jù)添加到專輯列表。

在此代碼中:

1)用于Context.BindJSON 將請求正文綁定到newAlbum。

2) album將從 JSON 初始化的結(jié)構(gòu)附加到albums 切片。

3)向響應添加201狀態(tài)代碼,以及表示您添加的專輯的 JSON。

b.更改您的main函數(shù),使其包含該router.POST函數(shù),如下所示。

在此代碼中:

1)將路徑中的POST方法與 /albumspostAlbums函數(shù)相關(guān)聯(lián)。

使用 Gin,您可以將處理程序與 HTTP 方法和路徑組合相關(guān)聯(lián)。這樣,您可以根據(jù)客戶端使用的方法將發(fā)送到單個路徑的請求單獨路由。

a.如果服務器從上一節(jié)開始仍在運行,請停止它。

b.從包含 main.go 的目錄中的命令行,運行代碼。

c.從不同的命令行窗口,用于curl向正在運行的 Web 服務發(fā)出請求。

該命令應顯示添加專輯的標題和 JSON。

d.與上一節(jié)一樣,使用curl檢索完整的專輯列表,您可以使用它來確認添加了新專輯。

該命令應顯示專輯列表。

當客戶端向 發(fā)出請求時GET /albums/[id],您希望返回 ID 與id路徑參數(shù)匹配的專輯。

為此,您將:

a.在您在上一節(jié)中添加的函數(shù)下方postAlbums,粘貼以下代碼以檢索特定專輯。

此getAlbumByID函數(shù)將提取請求路徑中的 ID,然后找到匹配的專輯。

在此代碼中:

(1)Context.Param用于從 URL 中檢索id路徑參數(shù)。當您將此處理程序映射到路徑時,您將在路徑中包含參數(shù)的占位符。

(2)循環(huán)album切片中的結(jié)構(gòu),尋找其ID 字段值與id參數(shù)值匹配的結(jié)構(gòu)。如果找到,則將該album結(jié)構(gòu)序列化為 JSON,并將其作為帶有200 OK HTTP 代碼的響應返回。

如上所述,實際使用中的服務可能會使用數(shù)據(jù)庫查詢來執(zhí)行此查找。

(3)如果找不到專輯,則返回 HTTP 404錯誤。

b.最后,更改您的main,使其包含對router.GET的新調(diào)用,路徑現(xiàn)在為/albums/:id ,如以下示例所示。

在此代碼中:

(1)將/albums/:id路徑與getAlbumByID功能相關(guān)聯(lián)。在 Gin 中,路徑中項目前面的冒號表示該項目是路徑參數(shù)。

a.如果服務器從上一節(jié)開始仍在運行,請停止它。

b.在包含 main.go 的目錄中的命令行中,運行代碼以啟動服務器。

c.從不同的命令行窗口,用于curl向正在運行的 Web 服務發(fā)出請求。

該命令應顯示您使用其 ID 的專輯的 JSON。如果找不到專輯,您將收到帶有錯誤消息的 JSON。

恭喜!您剛剛使用 Go 和 Gin 編寫了一個簡單的 RESTful Web 服務。

本節(jié)包含您使用本教程構(gòu)建的應用程序的代碼。

API接口入門(一):讀懂API接口文檔

本文目錄:

API接口是什么?

為什么我們需要API接口?

API接口的核心

一、API接口是什么?

我們來以一個常見的數(shù)學公式理解API,比如y=x+2,當x=2的時候,y=4,對么?

那此時,我們把y=x+2稱為接口,x=2稱為參數(shù),y=4稱為返回結(jié)果,那這個接口的功能就是能把我們輸入的數(shù)加上2(注意:這里你可以發(fā)現(xiàn)接口自身是帶有邏輯的)。

類比地,我們來理解一個常見的場景,比如現(xiàn)在有一個可以把經(jīng)緯度轉(zhuǎn)化為城市的接口,那當我輸入經(jīng)度是55°,緯度是88°的時候,接口通過自己的邏輯運算,返回結(jié)果告訴我:杭州市。

這樣你就可以清晰地了解百度百科的官方解釋了,接口就是預先定義的函數(shù)邏輯,他是供其他系統(tǒng)請求,然后返回結(jié)果的一個東西。

二、為什么我們需要API接口?

背景:我們的業(yè)務系統(tǒng)涉及多方多面,如果要一個公司或者一個系統(tǒng)把所有業(yè)務都做完,那未免工作量太大了吧?并且如果其他系統(tǒng)或公司有更好的運算邏輯,那我們在設(shè)計功能的時候可以考慮利用接口進行開發(fā)。

核心需求:利用現(xiàn)有接口可以降低開發(fā)成本,縮短開發(fā)成本。

舉個例子:比如我是打車的APP,現(xiàn)在我需要在我的頁面上展現(xiàn)地圖的功能,對于我司而言,新做地圖功能未免成本過高,那我們可以在高德開放平臺或者百度地圖的開放平臺,找到地圖API,這樣的話我們只需要購買高德的服務,部署調(diào)用高德地圖API,這樣就可以快速在我們頁面上線地圖功能了。

三、API接口的核心

對于小白而言,初看API文檔可能是一頭霧水的——從哪里看,怎么看,看什么是擺在面前的問題。

其實對于產(chǎn)品經(jīng)理而言,我們應該更關(guān)注這個公司可以提供什么樣的API接口服務,比如我知道高德可以提供地圖API,規(guī)劃路線的API,這樣的話在我們設(shè)計功能和工作中就可以想到調(diào)用他們的服務或者參考。

所以產(chǎn)品小白們看不懂也不用過于擔心,未來工作中你也會更深入了解清楚,因為看懂并不復雜,以下是API接口的核心點,所有的說明文檔離不開這5個核心點。

以下說明均以微信開放平臺為例說明,文末有各開放平臺的地址,大家有空可以去學習。好了,事不宜遲,現(xiàn)在我們來建立一個場景。

我們現(xiàn)在有一個APP,需要用戶在購買的時候調(diào)起微信支付的API,完成購買。請各位自動進入這個場景,把自己當作一位產(chǎn)品經(jīng)理。

1. 接口地址

現(xiàn)在Now,用戶點擊付款,我們需要告訴微信,我們要調(diào)起你們的收銀臺啦!但,去哪里告訴呢?這就需要接口地址了,也就相當于向微信的這條鏈接傳輸指定的數(shù)據(jù)。

一個鏈接地址不是我們理解的一個頁面,你可以理解是一個電話號碼,小白們要改變這個觀念。

此時我們可以看到接口文檔告訴我們鏈接是如下這條,那我們現(xiàn)在已經(jīng)撥通微信的電話了。

2. 請求參數(shù)(報文)

我們現(xiàn)在需要告訴微信,你想調(diào)用收銀臺對吧。那我們需要寫下來,此時生成的叫做報文,也就是你想告訴這個接口的內(nèi)容是什么?相當于前文函數(shù)的輸入x=2。

一般來說,報文的格式和內(nèi)容都是按接口文檔規(guī)定的。如下文就是微信開放平臺對調(diào)起收銀臺的報文要求。

我們先來看前2個參數(shù),你現(xiàn)在跟微信在對話,是不是應該先告訴微信,你是誰?這里微信的文檔告訴你應該要用應用ID+商戶號來確定你的身份,什么意思呢?

比如你是A商戶,下面有a,b,c三個APP,所以微信要知道你是哪個商家,下面的哪個APP要用收銀臺。這是非常重要的,微信后面要把收到的錢打到對應的賬戶以及統(tǒng)計數(shù)據(jù)等。

那我們就在報文里面寫下這兩句話:

appidwx2421b1c4370ec43b/appid(我的應用ID是wx2421…….)

mch_id10000100/mch_id(我的商戶號是10000…….)

好了,現(xiàn)在微信知道你是誰了,那你要告訴微信,你需要微信支付幫你收多少錢對吧?這里定義了貨幣類型和總金額,也就是收什么貨幣,收多少錢。

這里你看,貨幣類型的必填寫了否,也就是說你也可以不告訴微信支付貨幣類型是什么,因為他在后面?zhèn)渥⒘四J是人民幣。

好的,那我們寫下兩段報文

free_typeCNY/ free_type (我要收人民幣)

total_fee1/total_fee(我要收1元)

好了,現(xiàn)在微信知道你是誰,也知道要收多少錢了,那接下來微信支付要把收錢結(jié)果告訴你呀,因為你得知道用戶是成功支付了才能繼續(xù)發(fā)貨,服務啊等等的。所以這里我們用到通知地址,就是告訴微信,等下完事了他去哪里告訴你支付結(jié)果。那我們把地址寫好:

notify_url;/notify_url

3. 返回結(jié)果

剛剛微信支付已經(jīng)去收款了,現(xiàn)在他要在我們留下的通知地址中,告訴我們結(jié)果了。結(jié)果無非是兩種:成功收款?收款不成功?

(1)成功

很順利,現(xiàn)在用戶成功付錢了,并且微信也把成功的消息告訴我們了,并且他還把用戶支付的一些信息也告訴我們。

那這里就是微信支付成功收款后告訴我們的信息。

應用APPID,商戶號:告訴你我成功扣款的是哪家商戶的哪個APPID的交易。

業(yè)務結(jié)果:成功或失敗

(2)失敗

在產(chǎn)品設(shè)計的時候,我們往往很關(guān)注失敗的情況,當收款失敗的時候,微信同時會告訴你失敗的原因,如下圖很好理解,失敗的原因有很多很多種,我們在設(shè)計的時候往往要分析每種失敗的原因,為每個失敗的原因設(shè)計頁面和用戶提示,以確保用戶能理解。

以上就是API接口基本運作模式的理解,下面我將繼續(xù)更新API接口的一些更為深入和細節(jié)的關(guān)鍵元素,如請求方式/簽名/加解密等等。

可供參考的開放平臺網(wǎng)站

微信支付:

高德平臺開放平臺:

小白想學習go語言,哪位有教程?

如果你想每一步走得扎實,那么我的建議如下:

對一名從未接觸過程序開發(fā)的小白來說,首先得足夠了解計算機,至少你得知道你寫的代碼在計算機內(nèi)部是如何運行的,你的數(shù)據(jù)是如何通過網(wǎng)絡(luò)傳輸,《微機原理與接口技術(shù)》和《TCP/IP詳解》(三卷)是很好的學習入門 之選,同時也是很好的參考手冊

一切準備就緒,開始寫你的第一個程序,建議選C語言,基本的數(shù)據(jù)結(jié)構(gòu)、指針、函數(shù)、循環(huán)、條件判斷、手動GC等都上手試一遍,做到了然于胸,信手拈來

進入正題,學習Go語言,你會發(fā)現(xiàn),換湯不換藥,程序的構(gòu)成無非那么幾類,當然Go會有自己的特性,比如slice、goroutine、channel等,當然這一切得基于go開發(fā)環(huán)境

至于教程,最合適的莫過于官方文檔,老老實實看完,別太在意網(wǎng)上的各種項目實戰(zhàn),先學會走路,再學跑

最重要的一點:紙上得來終覺淺,絕知此事要躬行,多敲敲代碼,熟能生巧,happy coding!

如何快速編寫api文檔

剛開始寫接口文檔的服務端同學,很容易按著代碼的思路去編寫接口文檔,這讓客戶端同學或者是服務對接方技術(shù)人員經(jīng)常吐槽,看不懂接口文檔。這篇文章提供一個常規(guī)接口文檔的編寫方法,給大家參考。

推薦使用的是docway?寫接口文檔,方便保存和共享,支持導出PDF MARKDOWN,支持團隊項目管理。

一、請求參數(shù)

1. 請求方法

GET

用于獲取數(shù)據(jù)

POST

用于更新數(shù)據(jù),可與PUT互換,語義上PUT支持冪等

PUT

用于新增數(shù)據(jù),可與POST互換,語義上PUT支持冪等

DELETE

用于刪除數(shù)據(jù)

其他

其他的請求方法在一般的接口中很少使用。如:PATCH HEAD OPTIONS

2. URL

url表示了接口的請求路徑。路徑中可以包含參數(shù),稱為地址參數(shù),如**/user/{id}**,其中id作為一個參數(shù)。

3. HTTP Header

HTTP Header用于此次請求的基礎(chǔ)信息,在接口文檔中以K-V方式展示,其中Content-Type則是一個非常必要的header,它描述的請求體的數(shù)據(jù)類型。

常用的content-type:

application/x-www-form-urlencoded

請求參數(shù)使用“”符號連接。

application/json

內(nèi)容為json格式

application/xml

內(nèi)容為xml格式

multipart/form-data

內(nèi)容為多個數(shù)據(jù)組成,有分隔符隔開

4. HTTP Body

描述http body,依賴于body中具體的數(shù)據(jù)類型。如果body中的數(shù)據(jù)是對象類型。則需要描述對象中字段的名稱、類型、長度、不能為空、默認值、說明。以表格的方式來表達最好。

示例:

二、響應參數(shù)

1. 響應 HTTP Body

響應body同請求body一樣,需要描述請清除數(shù)據(jù)的類型。

另外,如果服務會根據(jù)不同的http status code 返回不同的數(shù)據(jù)結(jié)構(gòu), 也需要針對不同的http status code對內(nèi)容進行描述。

三、接口說明

說明接口的應用場景,特別的注意點,比如,接口是否冪等、處理是同步方式還是異步方式等。

四、示例

上個示例(重點都用紅筆圈出來,記牢了):

五、接口工具

推薦使用的是(以前叫小幺雞) 寫接口文檔,方便保存和共享,支持導出PDF MARKDOWN,支持團隊項目管理。

請教在線文檔的api

Android中文版

api手冊地址:

Ant最新版

api手冊地址:

ASM字節(jié)碼操作

api手冊地址:

Axis2最新版

api手冊地址:

Bash腳本

api手冊地址:

Bootstrap 3

api手冊地址:

Bootstrap 4

api手冊地址:

C/C++

api手冊地址:

C3P0連接池

api手冊地址:

CentOS使用文檔

api手冊地址:

Commons-Beanutils

api手冊地址:

Commons-Fileupload

api手冊地址:

Commons-IO最新版

api手冊地址:

Commons-Lang最新版

api手冊地址:

Commons-Net最新版

api手冊地址:

CSS 3

api手冊地址:

DBCP連接池

api手冊地址:

Dom4j

api手冊地址:

dubbo中文文檔

api手冊地址:

EhCache

api手冊地址:

Freemarker

api手冊地址:

Go語言

api手冊地址:

Hadoop

api手冊地址:

Hibernate中文版

api手冊地址:

IKAnalyzer中文版

api手冊地址:

Java 10

api手冊地址:

Java 6

api手冊地址:

Java 7

api手冊地址:

Java 8中文版

api手冊地址:

jqGrid中文版

api手冊地址:

Jquery中文版

api手冊地址:

Json-lib

api手冊地址:

Junit4最新版

api手冊地址:

Kryo

api手冊地址:

Log4j最新版

api手冊地址:

Lucene

api手冊地址:

Maven

api手冊地址:

Windows MFC中文版

api手冊地址:

Mybatis

api手冊地址:

MySql中文版

api手冊地址:

Netty 3.6

api手冊地址:

Nginx中文版

api手冊地址:

OpenJPA最新版

api手冊地址:

PHP中文版

api手冊地址:

POI-apache

api手冊地址:

QuickServer

api手冊地址:

redis中文參考文檔

api手冊地址:

Ruby

api手冊地址:

Ruby-library

api手冊地址:

Ruby on Rails

api手冊地址:

Shiro

api手冊地址:

Spring最新版

api手冊地址:

Spring for Android

api手冊地址:

Spring Boot

api手冊地址:

Spring Cloud中文文檔

api手冊地址:

Spring Security

api手冊地址:

Spring中文版

api手冊地址:

Struts 2最新版

api手冊地址:

Taperstry

api手冊地址:

TensorFlow中文

api手冊地址:

Tomcat

api手冊地址:

Ubuntu

api手冊地址:

Velocity 1.7

api手冊地址:

VelocityTools2.0

api手冊地址:

Vue Router中文參考

api手冊地址:

vue.js中文文檔

api手冊地址:

XMLBeans

api手冊地址:

Yahoo UI中文版

api手冊地址:

Zend Framework中文版

api手冊地址:

Zookeeper

api手冊地址:

如何開始自學api編程???

首先你先把API的概念搞清楚,API的全稱我想你應該略有了解,哪怕全稱記不?。篈pplication Programming Interface,應用程序編程接口

說白了就是別人幫你寫好了一個功能,封裝成類或是函數(shù),這就叫API,你自己寫了個類,這也可以是API。

一般知名框架與庫都是會有開發(fā)文檔的,對著文檔寫代碼調(diào)用里面的功能就可以了,沒文檔就只能硬啃代碼了,這沒辦法,除非有人知道并告訴你了該怎么用。

我們接觸最多的其實還是系統(tǒng)API,比如你用的是Python,那我就拿Python舉例子,里面有一個包叫os,看名字就知道了全稱是Operation System,執(zhí)行系統(tǒng)操作的。sys模塊用于與解釋器的交互的,這些都是系統(tǒng)庫,或是叫系統(tǒng)模塊,當然這個系統(tǒng)所指范圍有點廣。

不知道我所理解的API是否正確的,一直感覺自己理解的是錯誤的,或是片面的,請各位大神輕噴。。。

本文名稱:go語言api文檔學習 go語言開發(fā)api
地址分享:http://www.muchs.cn/article46/hjeehg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機、關(guān)鍵詞優(yōu)化、網(wǎng)站策劃、Google營銷型網(wǎng)站建設(shè)、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網(wǎng)站建設(shè)