23.1.3 接口的應用和優點前端
API是一些預先定義的函數,目的是提供應用程序與開發人員基於某軟件或硬件得以訪問一組例程的能力,而又無須訪問源碼,或理解內部工做機制的細節。接口應用的一些常見場景以下:編程
Ø 不一樣編程語言之間通訊後端
在開發中,一些複雜的架構每每並不僅使用一種編程語言,會根據不一樣語言的優點處理相應的問題,這就須要在一個項目中使用多種語言配合。這種形式能夠有多種方法,一般會選擇使用接口技術實現不一樣語言之間的通訊。由於絕大多數編程語言均可以利用HTTP協議,並經過URL去訪問服務器。服務器也可使用不一樣的編程語言去處理數據,並返回各類編程語言都能生成和處理的XML或JSON數據。不一樣語言之間的通訊如圖23-2所示。瀏覽器
圖23-2 不一樣語言之間的通訊服務器
Ø 先後端分離再也不依賴模版引擎微信
在傳統的開發模式中,瀏覽器端與服務器端是由不一樣的先後端兩個團隊開發的,可是模版卻又在這二者中間的模糊地帶。所以,模版上總不可避免地出現愈來愈多的複雜邏輯,最終難以維護。經過接口技術就能夠把模版這個模糊地帶切割清楚,前端使用JavaScript訪問接口操做後端數據,取得更明確的職責劃分。例如,後端專一於服務層、數據格式、數據穩定和業務邏輯;前端專一於UI層、控制邏輯、渲染邏輯、交互和用戶體驗,再也不拘泥於服務端或瀏覽器端的差別。使用接口徹底實現先後端分離,同一套接口還能夠爲項目前端App提供後端服務。先後端分離如圖23-3所示。架構
圖23-3 先後端分離微信公衆平臺
Ø 實現分佈式架構SOA前後端分離
SOA(面向服務的架構)是一個組件模型,它將應用程序的不一樣功能單元(稱爲服務)經過這些服務之間定義良好的接口和契約,從而聯繫起來。接口是採用中立的方式進行定義的,它應該獨立於實現服務的硬件平臺、操做系統和編程語言。這使得構建在各類各樣的系統中的服務能夠以一種統一和通用的方式進行交互。SOA架構是一個完整的企業架構,能夠覆蓋整個企業範圍內集成的需求。參考架構中的服務經過模塊化的方式進行集成,所以SOA的實現能夠從一個小的項目來啓動,在新的項目實施時,新的功能可以輕鬆地加到架構中,經過漸進的方式在企業範圍內擴大集成的範圍。SOA參考架構如圖23-4所示。編程語言
圖23-4 SOA參考架構
Ø 豐富的第三方接口
咱們在開發中能夠開放接口讓別人訪問,爲其餘項目提供服務。固然也有別人的開放接口,爲咱們的項目提供服務。因此引入第三方服務接口,是讓網站變強大的基石。另外,有些功能在本身的項目裏是實現不了的,必須使用第三方的接口服務。例如,在本身的商城中須要經過支付寶在線支付,就必須調用支付寶的接口實現。對微信公衆平臺訂閱號或服務號進行二次開發,如獲取微信用戶的信息等,也必須經過微信公衆平臺提供的接口才能實現。在項目中常見的第三方接口如圖23-5所示。
圖23-5 常見的第三方接口