LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

通過代碼解釋什么是API,什么是SDK?

admin
2025年5月19日 13:34 本文熱度 47

想要弄清楚這個問題,看別人寫的概念解釋文章可能幫助不大,還是得自己親手設計一下 API,使用或簡單封裝一個 SDK。

下面,我嘗試設計一個小故事,直接通過代碼講清楚這個事兒。

對外提供云你好服務

假設我是一個軟件服務提供商,我設計了一個打招呼的服務,給他起了個名字叫:云你好。

用戶只要調用我的 API 接口,就能使用我的服務,我會向他打一個招呼。

首先我起一個后端服務,這里選擇用 python,主要是用 python 比較快,代碼少,解釋這個問題和語言無關哈。(先看代碼,再解釋)

# 云你好服務源碼
from flask import Flask
from flask import request

app = Flask(__name__)

# 云你好服務 API 接口
@app.get("/api/hello")
def hello():
   # 看用戶是否傳遞了參數,參數為打招呼的目標
   name = request.args.get("name", "")
   # 如果傳了參數就向目標對象打招呼,輸出 Hello XXX,否則輸出 Hello World
   return f"Hello {name}" if name else "Hello World"

# 啟動云你好服務
if __name__ == '__main__':
   app.run()

從上面代碼可以看出,我定義好了你好云的 API 接口:

@app.get("/api/hello")
def hello():
   ......

當我的服務跑起來后,我就會告訴用戶我的 API 調用方式:

請求地址:GET http://127.0.0.1:5000/api/hello

可選請求參數:name - 打招呼的對象名兒

當然更規范的做法是提供一份 API 文檔。

沒有 SDK 如何使用云你好

接下來我們切換一下身份,假設我現在是一名云你好的用戶。

在我登陸上云你好的官網后,只看到了云你好定義的 API 調用規則。

也就是說,如果我想使用云你好服務,不管我是寫 python,寫 java,或是寫 golang,都得寫發送 http 請求的代碼,調用云你好的 API 使用打招呼服務。

比如在 python 中我們可以這樣寫:

# 我是云你好服務的一名客戶,我通過發送 http get 請求使用云你好

import requests

# API 地址
url = "http://127.0.0.1:5000/api/hello"
# 發送 GET 請求
response = requests.get(url=url, params={"name": "阿菌"})
# 打印響應結果
print(response.text)

最后得到結果:Hello 阿菌

更好地服務我的客戶

接下來我們切換一下身份,假設我變回了云你好的服務提供商。

經過一些簡單的調研,我聽說有非常多的 python / java / golang 工作者喜歡使用我們的云你好服務。

為了讓他們更方便地使用云你好服務,我決定向他們提供云你好服務 python sdk / java sdk / golang sdk,進一步降低他們使用云你好服務的難度(忽悠他們更多的服務費)

下面我以 python sdk 作為示例,在 sdk 中,我會封裝好使用云你好服務的邏輯,僅對用戶提供一個 hello 方法,這樣只要用戶安裝好云你好 sdk,就能直接調用 hello 方法使用云你好服務了。

# 云你好 python sdk
import requests


class HelloSDK:
   # 云你好服務地址
   service_url = "http://127.0.0.1:5000/api/hello"

   @classmethod
   def hello(cls, name):
       response = requests.get(url=cls.service_url, params={"name": name})
       return response.text

寫好 sdk 后,我們會在官方網站上更新道:

大家好,歡迎使用云你好 python sdk,您可以通過以下方式使用 sdk:

  1. 安裝云你好 sdk:pip install hello-sdk

  2. 使用你好云 sdk:

from hello_sdk import HelloSDK

HelloSDK.hello("阿菌")

使用 SDK 訪問你好云

然后我們再次切換身份,假設我是你好云服務的用戶,你好云發布 SDK 了,我非常高興,于是我的代碼就簡化成這樣了:

# 我是云你好服務的一名客戶,我通過你好云的 hello-sdk 使用你好云服務

from hello_sdk import HelloSDK

HelloSDK.hello("阿菌")

得到的結果仍然是:Hello 阿菌

總結

希望上面的代碼能幫助大家理解 API 和 SDK,當然它只是一個極簡的 Demo,不能代表 API 和 SDK 這兩個概念的全部東西。

IT 行業中有很多概念,他們背后往往對應的是一類行為,如果僅從技術名詞的角度理解是非常痛苦的,所以極力推薦動手實踐學習。

API 的全稱是:Application Program Interface(應用程序接口)

SDK 的全稱是:Software Development Kit(軟件開發工具包)

如果讓我總結 API 和 SDK 的區別,我覺得 API 可以理解成一種標準吧,我們按照服務提供商定義的 API 標準去調用他們的服務,就能得到相應的結果。

而 SDK 可以理解為對 API 背后服務的一種封裝,它更貼近用戶,能大幅降低用戶使用服務的開發成本。

最后,如果同學們還想進一步學習的話,推薦去看一下云廠商的 API 和 SDK 定義,甚至分別動手體驗一下,絕對瞬間秒懂。

參考講解 - 鏈接地址

https://www.cnblogs.com/tanshaoshenghao/p/16217608.html


閱讀原文:原文鏈接


該文章在 2025/5/19 14:16:26 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

黄频国产免费高清视频,久久不卡精品中文字幕一区,激情五月天AV电影在线观看,欧美国产韩国日本一区二区
日韩呦呦一区二区精品视频 | 日本视频观看无卡免费精品页码 | 欧洲亚洲国产精品 | 日本三级精品永久在线观看 | 亚洲欧美日韩中文二区 | 亚洲欧洲日本在线视频 |