iT邦幫忙

2023 iThome 鐵人賽

DAY 23
0
自我挑戰組

30天開啟.NET後端工程師的旅程系列 第 23

Day 23 API RESTful API 是啥?

  • 分享至 

  • xImage
  •  

前言

前面有使用.NET Core來說明使用了CRUD的內容,那.NET工程師除了MVC要會寫以外,還有要寫API的方式,API很常聽到,但到底什麼是 API?


API(應用程式介面)是一組定義,允許不同的軟體應用程式之間進行通信和互動。也是一種規範,用於確定兩個軟體實體之間如何交換資訊、請求服務和執行操作。
API 可以視為應用程式之間的橋樑,使它們能夠彼此合作,共享資料並完成特定任務。

API 定義了通訊的方式,包括了請求和回應的規則,以及可以使用的命令和參數(之前在學習的時候說這個有說明文件可以看,方便前後端知道接收甚麼訊息,讓資訊如何傳遞,但還是不懂,直到實際專案練習過後,看到資料前後端的傳遞才比較能理解)。

這個概念就通過使用 API,開發人員可以訪問其他應用程式或服務的功能,而無需了解其內部實現細節,這使得應用程式之間可以獨立開發,並在需要時相互整合,前後端可以分開運作,後端發API的撰寫把資料查找出來,前端把畫面設計出來,可能有互動性等等的。

API 就像一個菜單,它列出了可用的選項和操作,用戶(或應用程式)可以根據需要點擊或呼叫,需要甚麼資料,那發送的API就會根據動作(不外乎就是新增修改刪除等等的動作)來去執行跟資料庫交互把資料或是回應的訊息傳回給使用者。

那在API裡面其中常聽到的 RESTful API 呢?

RESTful API 是一種遵循特定原則和約束的 API,使用 REST(Representational State Transfer)架構風格,通常是使用 HTTP 協議進行通信的,是現代 Web 應用程式中常見的一種 API 風格。

RESTful API 的主要特點包括:

  1. 資源:在 RESTful API 中,一切都被視為資源,每個資源都有唯一的識別符(通常是 URL)。
  2. 無狀態:每個請求都是獨立的,伺服器不保留關於之前請求的任何資訊。每個請求都包含足夠的信息,伺服器可以理解和處理。
  3. 基於 HTTP 方法:RESTful API 使用 HTTP 方法(如 GET、POST、PUT、DELETE)來執行操作,這些方法對應於 CRUD(Create、Read、Update、Delete)操作。
  4. 呈現:資源的狀態以某種特定格式(通常是 JSON 或 XML)呈現給用戶端。
  5. 自我描述性:伺服器回應包含有關如何使用 API 的資訊,使用戶端能夠根據需要動態探索資源。
  6. 分層系統:RESTful API 可以建立在多層架構中,用戶端可以與中介伺服器進行通訊,而不需要知道最終伺服器的實際位置。

Web API(Web應用程式介面)是一種用於在不同的軟體應用程式或服務之間進行通信的技術。它允許不同的軟體系統之間進行資訊交換,以執行特定的功能或存取資源。Web API 是一種在網際網路上提供服務的方式,它使用標準的通訊協議,通常是HTTP或HTTPS,來處理請求和回應。

以下是Web API的一些特點和用途:

  1. 通信介面: Web API 定義了用於發送請求和接收回應的通信介面。開發人員可以使用這些介面來與遠端伺服器或服務進行互動,以存取資料或執行操作。

  2. 跨平台互通: Web API 不受限於特定的程式語言或平台,這意味著不同的應用程式可以使用不同的語言和技術來訪問和使用API。這種跨平台互通性是Web API的一個重要優勢。

  3. 資源存取: Web API 通常用於存取遠端伺服器上的資源,例如資料庫、檔案、服務或其他內容。這使得用戶可以通過網絡存取這些資源。

  4. 自動化任務: 許多Web API允許自動化執行特定的任務,例如資料同步、資料分析、郵件發送等。這些API可以幫助開發人員自動化工作流程並提高效率。

  5. 第三方整合: Web API通常被用於允許第三方開發者集成或擴展現有的應用程式或服務。這樣,不同的應用程式可以合作,共享資源和功能。

    以購物網站來說,網站只要串接第三方金流提供的API到該網站程式碼中,購物網站的開發人員就不用再另外去了解與開發金流技術,只需利用API串接的方式就能讓網站擁有線上支付的服務;另一方面,提供API的第三方金流技術人員,只要將這項技術提供給各家需要金流的網站並進行串接,像是有儲值功能、購物功能、線上付費…等與金錢相關的網站即可。這樣的對接技術,讓雙方都能享受到對方的技術與服務,讓分工更加明確、網站的服務更加多元。


第23天完成,希望慢慢從後面專案可以了解,再一周就可以順利完成了!!!!


上一篇
Day 22 Interfaces 介面
下一篇
Day24 使用ASP.NET Core Web API 新建及查找資料
系列文
30天開啟.NET後端工程師的旅程30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言