如何撰寫 API 所需具備的知識

3年前 (2017-07-16) Yosheng 程式設計 0評論 已收錄 924℃

對於剛出社會的新鮮人而言,頭一次聽到這名詞其實很陌生,本篇文章主要紀錄當時出社會主管只給了我張 API 規格表,我只需要依照規格完成,形式不拘,有前輩寫的半成品可以接續,但關鍵我看了整整三天毫無頭緒,因此我決定重新開始.....

Web Service 概念

為一種軟體服務,透過Web通訊協定及資料格式的開放式標準(如HTTP、XML及SOAP等)為其他應用程式提供服務或進行資料交換。

可以理解為兩個大型公司為了互相交換資料,因此各自定義自己的流程規範,好比如大學申請學校,你必須依照學校的要求製作備審資料,學校收到後審核,若是符合要求就將入學證明(資料)發給你。其中 SOAP 或 Restful 就像是備審資料要求的形式。

SOAP 概念

全名為 Simple Object Access Protocol 是一種提供給 Web Services 用XML製造出來的通訊息協定,好比可以運作在不同平台上的 Protocol,就像是打電話必須通過電話線或無線基地台,目的是讓應用程式之間互相溝通。

RESTful 概念

REST 所代表的是軟體架構風格,全名 REpresentational State Transfer 即表徵狀態轉移
客戶端對伺服端發出資源請求 (Resoure) ,伺服端回應資源的表徵 (Representation) 或是稱作表現方式
換句話說,資源再REST底下是可以定址的概念 (Addressed) , 可以用檔案、文件、格式來表現,來代表資源目前的狀態 (State)

如此 REST 便說明了操作 Web 的基本行為是一種表徵化狀態轉變,我們藉由操作 (動詞) 不同的 URL (名詞) 達成不同的資料 (表徵) 呈現方式。

REST vs. SOAP

REST vs. SOAP 一直是個爭議,不過:

  • RPC 通常強調的是呼叫遠端功能
    REST 強調的是跟遠端交換資料
  • REST 比SOAP 容易瞭解,也容易實作
  • REST 不是標準,而是Architecture Style
  • 在一個不太方便撰寫程式的環境下,REST是一種非常好的Service 提供方式
  • 非常適合用在Web 與Mobile 環境(雲端)
  • 整合Web Resource 時考慮用REST
    企業內部比較重視QoS 時考慮用SOAP
內容轉自:
[筆記] Web Service 概述
Java Tutorial 第六堂(1)REST 與 JAX-RS
用JAX-RS和Jersey完成RESTful Web Services

我們可以簡單理解,網頁的瀏覽皆是透過使用者發出請求向伺服端獲取資源,但發出的請求一般皆是 GET 或 POST 方式,但在Restful的風格規範下,我們可以透過 PUT 和 DELETE 來完成對資料庫的增刪改查,藉由不同的網址來指定取得不同的資源。

下一頁所講述的 RESTfull 是我認為比較深入的部份,新手可以直接跳過,畢竟我自己本身也無法完全理解就是。當作筆記一下囉!未來有機會再回頭看看也許會有不同的體悟!

博主

擅長使用 C# 和 Java 開發項目,全棧開發工程師,前端主要使用 Vue 其次 Angular ,目前正在學習分布式架構,運維研發兼具,平時愛好鑽研技術並應用於實務當中,常駐於上海。

相關推薦

相逢就是有緣,留下足跡吧!