如何做一個api接口?

手機用戶57280362794


因為我是做Java開發的,所以就按照Java的開發流程說一下;首先一個好的API接口,設計是要下功夫的,細節就不在這裡說了,這裡還是主要說實現;如果開發環境具備,前後大概也就不到十分鐘,就可以完成一個簡單的API接口的開發(只是個demo)。


0、開發前準備:電腦上需要安裝JDK、Maven和IDE。

1、新建一個基於Spring Boot的項目,為了快速完成,我選擇登錄到【

start.spring.io

】網站上,生成一個項目。通過【Search dependencies to add】可以選擇需要引入的包,我這裡只引入了Web,也就是Spring MVC;假如你需要通過Mybatis訪問數據庫,也可以在這裡選擇;然後點擊生成項目。

2、將下載好的項目,解壓後引入到你的IDE中,新建一個類:

com.wukong.apidemo.controller

.ApiController

3、在這個類中增加一個方法,並主要使用@RestController、@RequestMapping、@ResponseBody兩個標籤,整個類大概是這個樣子:

4、這時候最簡單的一個API接口就完成了,我們可以啟動項目後,訪問對應的接口地址,得到接口的返回信息:

5、我們再對這個接口稍微加工一些,讓swagger幫助我們生成一個接口文檔:

5.1、在

pom.xml

中進入swagger需要的包:

5.2、對ApiController增加:@Api、@ApiOperation、@ApiImplicitParams等標籤:

5.3、這時候啟動項目後,訪問:

http://10.141.48.41:8080/swagger-ui.html

5.4、這裡留了一個小問題,swagger的配置少了一步,按照上面的做飯,訪問swagger的頁面是會報404的,大家可以嘗試解決。

我將持續分享Java開發、架構設計、程序員職業發展等方面的見解,希望能得到你的關注。


會點代碼的大叔


作為BAT的Java開發工程師,來分享下我在公司裡寫的項目(脫敏)中的封裝api接口部分。

我們使用的是SSM框架,但是這裡其實不論是SSM還是SSH,抑或是SPRING BOOT,接下來的介紹都是通用的,因為主要是通過介紹註解(annotation),而不是xml文件。

Controller.Class

首先,API接口需要出現在controller層,因此,在類名上方,需要至少兩個註解,@controller,用於在項目啟動的時候告訴spring,這個類是controller層的,需要加載好;@requestMapping,這個註解相當於指明瞭api的url中的一部分。

如果一個服務綁定的域名是

http://xx.yy.com

,然後requestMapping中的內容意味著,url為

http://xx.yy.com/dispatch

/.... 格式的請求,會被轉發到當前這個類中。

Controller.function

看完接下來我們看函數部分,這裡首先也要加一個responseBody註解,這個註解的含義是將controller層中,函數的返回對象通過轉換器,轉換為指定的格式,寫入到http response返回對象的body中去,也就是說下面這個函數返回的String,直接作為response的body內容返回給了用戶。

接下來,依舊是requestMapping註解,相信大家也能瞭解了,複用上面的例子,當url為

http://xx.yy.zz/dispatch/validate

的時候,相當於調用了這個validateParams函數,並且這個請求request的body就會作為body參數,一併傳入這個函數。

這裡大家可以能注意到了,上面的函數的參數名中用的是requestBody,而下面用的是formParam,雖然二者都是post請求,但是參數接收方式卻不一樣。這就意味著,代碼裡指定了不同的接收方式,request的body裡也必須用對應的方式才能將數據傳遞給函數。上圖中body用raw形勢的就可以,而下圖則要求用application/x-www-form-urlencoded格式的body。

最後,上面介紹的都是post請求的api,下圖介紹了GET請求的api如何寫。可以看出,註解方面,requestMapping裡指定requestMethod為GET即可。在函數的參數方面,需要用requestParma註解來接收,如下圖。當你發送

http://xx.yy.com

/dispatch/getMyContract?username=xiaomin&password=123 這個請求的時候,就相當於調用了下面的getMyContract函數,並且傳入的username參數為xiaomin,password參數為123.

我是蘇蘇思量,來自BAT的Java開發工程師,每日分享科技類見聞,歡迎關注我,與我共同進步。


蘇蘇思量


API(Application Programming Interface,應用程序編程接口),目的是提供應用程序與開發人員基於某軟件或硬件訪問獲取數據。


api接口的返回數據格式目前來說用的最多的是json數據格式。各個語言實現的方式有所不同,但是api使用者無須關心實現細節。下面是用php實現一個json數據格式的代碼,希望對你有所幫助。


PHP簡單示例:

假設接口訪問地址 http://127.0.0.1/api.php,api.php文件內容是


訪問接口 http://127.0.0.1/api.php


特別說明

上術示例只是最最基本的實現方式上的一個小示例!市面上再複雜規範的API,無非就是一個根據客戶端的請求參數對數據的篩選。所以這裡也給出一個比較規範的API設計思路
  1. 使用標準的HTTP方法,規範路由請求。

  2. 無狀態性,每個請求都是一個新的請求來對待。

  3. 支持多種資源表示方式 (xml, json等)。

  4. 數據格式規範化,做好數據的安全性。


平常心學院


作為一名開發者,在此發表我的一些觀點,一個好的Api一定是一個可讀性比較高的Api項目。可以從以下幾點入手

1、不論Api用何種語言編寫,多少人編寫,都需要達到每個接口的輸出規則都是一致的。確定好開發前的開發規範,包括入參使用何種駝峰命名,返回的json數據又是以何種規則對外輸出這些都需要在編碼前考慮好。

2、Api需要對入參做必要驗證。

3、需要提供統一的驗證機制,在一定程度上防止遭遇惡意請求。

4、增加必要的日誌記錄,為以後的排查提供數據依據。

5、考慮Api的響應速度可以適當的引用緩存技術,比如Redis。

6、做好項目的文檔記錄。

以上就是我的一些建議,我是一名開發人員,喜歡我的歡迎關注🍀🍀🍀🍀🍀🍀🍀


陸垚瑪麗


API接口設計個人覺得需考慮其擴展性能特別是對外公共接口,否則多個業務需求類似會存在兩套API的情況,比較浪費資源。其次api名稱,請求參數,返回結果必須有確定含義,容易上手,返回結果一般我設計時分為2部分,系統層面信息,業務層面信息,系統層面例如api調用異常,一般用約定好的錯誤碼標識,業務層面就很寬泛,例如銀行業務聯網核查,查不到用戶信息,從系統層面這是OK的,業務層面肯定是不行的,不可能用戶在銀行有賬戶卻沒有用戶信息,當然可能數據庫在做遷移導致暫時訪問為空,這種業務錯誤也可以通過狀態碼或者狀態標識boolean值+錯誤信息返回給客戶端,這樣api出問題可以快速定位是系統問題還是業務問題


定格往憶


可以試試showdoc,很方便編輯查看,安裝很方便。



小崔技術之路


如果只是一個簡單API實例的話,不涉及數據庫等,可以實現的語言可以說非常的多,但是我覺得比較簡單的是nodejs和go 因為他們有自己的原生服務模塊,nodejs有http模塊,go有net模塊,都直接可以起一個web服務,無需Apache,Tomcat等web服務器


柏舟63677578


swagger 接口自動生成,按文檔說明的格式註釋,可以一目瞭然各參考說明


分享到:


相關文章: