API(Application Programming Interface)(應用程式介面)是系統/應用程式依特定協議與外部構通的介面,而Endpont(API端點)是API特定接口的位址。簡單說API是endpoints的通稱。
API指系統對外溝通的協議規格,例如RESTful API使用HTTP /1.1協議,以什麼請求頭(Request Header)及資料格式傳輸(e.g. JSON、XML)等;而Endpoint是API的某個特定資源位址(url),定義了什麼動作(e.g. HTTP Method)、接收參數(e.g. path variable, query string, payload)、回應代碼(e.g. Http Status Code)及參數等。
例如下面是兩個RESTful API的endpoint。
GET | /employee/{id}
POST | /employee/{name}
以圖來表示如下。
Client Server
+--------+ +-------+----------------+
| | | API | |
| | endpoint | | |
| | +--------------------+ | |
| |<------------------->|GET /employee/{id} | | |
| | +--------------------+ | |
| | endpoint | | |
| | +-----------------------+ | |
| |<---------------->|POST /employee/{name} | | |
| | +-----------------------+ | |
| | endpoint | | |
| | +---------------------+ | |
| |<------------------>|GET /department/all | | |
| | +---------------------+ | |
| | endpoint | | |
| | +---------------------+ | |
| |<------------------>|POST /item/{amount} | | |
| | +---------------------+ | |
| | | | |
+--------+ +-------+----------------+
但工作實務上兩者通常為同義詞,例如通常會說:「你的API怎麼又壞了」,而不太會說「你的API endpoint怎麼又壞了」。
沒有留言:
張貼留言