API
(Application Programming Interface)
Giao diện lập trình ứng dụng

Định nghĩa: is a software intermediary that enables two applications to communicate with each other.


**API là cơ chế cho phép 2 thành phần phần mềm giao tiếp với nhau bằng một tập hợp các định nghĩa và giao thức.

Ứng dụng API

WEB API
image


Web API hay ASP.NET Web API là một framework dùng để xây dựng và lập trình các dịch vụ web HTTP. Nó có dạng là một RESTful API hiện đại, hội tụ đủ các điều kiện của REST cũng như các tiêu chuẩn tương tự, được tối ưu cho các dịch vụ trực tuyến cũng như ứng dụng web hiện nay

XML/JSON as formatting language

Simple URI as the address for the services

Stateless communication

Hypertext Transfer Protocol (HTTP)


HTTP works as a request-response protocol between a client and server.


HTTP tạo ra Request - Response giữa Client và server

HTTP Method
Phương thức giao tiếp

POST

PUT

HEAD

DELETE

PATCH

OPTIONS

CONNECT

TRACE

GET

POST được sử dụng để gửi dữ liệu tới một server để tạo hoặc cập nhật tài nguyên trên đó.


Dữ liệu được gửi tới server với method POST được lưu trữ trong request body của truy vấn HTTP
Khi tạo dữ liệu nên dùng POST để bảo mật dữ liệu hơn

GET được sử dụng để request dữ liệu từ một nguồn dữ liệu cụ thể.
Khi lấy dữ liệu nên dùng GET để truy xuất và xử lí nhanh hơn.

Lưu ý khi Truy vấn Get:

vẫn duy trì trong lịch sử trình duyệt

có thể được đánh dấu bookmark

không bao giờ nên được sử dụng khi xử lý các dữ liệu nhạy cảm

có độ dài giới hạn

chỉ có thể được sử dụng để yêu cầu dữ liệu

Lưu ý khi Truy vấn post

không bao giờ bị cached lại

không được duy trì trong lịch sử trình duyệt

không thể được đánh dấu bookmark

không có giới hạn độ dài

Hoạt động API
Kiến trúc API thường được giải thích dưới dạng máy chủ và máy khách. Ứng dụng gửi yêu cầu được gọi là máy khách, còn ứng dụng gửi phản hồi được gọi là máy chủ.

PUT được sử dụng để gửi dữ liệu tới server để tạo hoặc cập nhật tài nguyên trên đó.
Truy vấn POST gọi nhiều lần ra 1 kết quả

HEAD gần giống giống với lại GET, tuy nhiên nó không có response body.
Truy vấn HEAD hữu ích khi chúng ta sử dụng nó để kiểm tra những gì mà một truy vấn GET sẽ trả về trước khi thực hiện truy vấn GET – kiểu như trước khi download một file lớn về máy hay response body.

DELETE được sử dụng để xóa tài nguyên cụ thể nào đó.

OPTIONS được sử dụng để mô tả các tùy chọn trong quá trình giao tiếp cho tài nguyên đích.

Truy vấn PATCH dùng để cập nhật tài nguyên giống PUT nhưng:


1. PUT update: Nếu chỉ gửi 1 số field nhất định thì những field còn lại sẽ bị xóa (tức bị null) -
Chú ý rằng, nếu như ban đầu chúng ta không có sẵn resource mà sử dụng method PUT. Nó sẽ thực hiện chức năng như POST để tạo mới một resource.



2.PATCH Update: PATCH được dùng để thay đổi data thế nhưng nó chỉ thay đổi những field được yêu cầu thay đổi thay vì toàn bộ resource
Chú ý rằng, bạn không thể dùng method PATCH cho một resource không tồn tại như PUT (Kết quả sẽ trả về FAIL và không có resource mới được tạo ra

Trình bày một vòng lặp kiểm tra thông báo song song với path tới nguồn mục tiêu.

Thiết lập một tunnel tới Server được xác định bởi URI đã cung cấp.

có thể bị cache lại

API trên hệ điều hành

API của thư viện phần mềm hay framework:

Ưu/ Nhược điểm của Web API

NHƯỢC ĐIỂM

ƯU ĐIỂM

Khó sử dụng

Tốn thời gian, chi phí phát triển, nâng cấp và vận hành

Dễ bị tấn công nếu không có giới hạn điều kiện kỹ

Mới chỉ hỗ trợ mặc định các phương thức GET, POST

Cần phải có kiến thức chuyên sâu, kinh nghiệm backend tốt để có thể sử dụng hiệu quả API -> Khó sử dụng

Tốn thời gian, chi phí phát triển, nâng cấp và vận hành cả 1 hệ thống server

Hệ thống dễ bị tấn công nếu không có giới hạn điều kiện kỹ -> Khó khăn trong việc nâng cao độ bảo mật của hệ thống

Client > Request

Server > Response