API là gì? Hướng dẫn thực tiễn về giao diện phần mềm
API thu thập dữ liệu không có sự xâm phạm cung cấp các giao diện cụ thể cho nhiệm vụ trả về dữ liệu web công khai có cấu trúc cho quy trình làm việc ứng dụng.
Tóm tắt
- API là một giao diện phần mềm được xác định. Nó phơi bày các khả năng và quy tắc có tên để một thành phần có thể sử dụng một thành phần khác mà không cần biết cách triển khai bên trong của nó.
- Hợp đồng quan trọng hơn phương tiện vận chuyển. Một API có thể là bề mặt thư viện, cuộc gọi hệ điều hành, giao diện cục bộ, hoặc dịch vụ web từ xa.
- API web thường trao đổi yêu cầu và phản hồi. Các điểm cuối, hoạt động, tham số, xác thực, đại diện, lỗi và giới hạn cấu thành hợp đồng khả dụng.
- REST, GraphQL, RPC và SOAP là các phương pháp cho các API từ xa. Chúng tổ chức các hoạt động và tin nhắn khác nhau và nên được chọn theo những giới hạn của hệ thống.
- Một tích hợp thành công xử lý thất bại một cách có chủ ý như thành công. Xác thực, ủy quyền, hạn ngạch, thời gian chờ, phiên bản hóa và khả năng quan sát thuộc về thiết kế.
API có nghĩa là Giao diện lập trình ứng dụng
Giao diện lập trình ứng dụng là một bộ quy tắc và khả năng được phơi bày mà phần mềm có thể gọi hoặc tiêu thụ. Giao diện này ẩn chi tiết triển khai phía sau một ranh giới ổn định. Người gọi cần biết hoạt động nào tồn tại, đầu vào mà nó chấp nhận, đầu ra hoặc hiệu ứng mà nó tạo ra, và cách lỗi được báo cáo. Nhà cung cấp có thể thay đổi mã bên trong trong khi vẫn bảo tồn hợp đồng đó, cho phép cả hai bên phát triển với ít sự phối hợp hơn.
Các API đã tồn tại trước web và rộng hơn các điểm cuối HTTP. Một thư viện ngôn ngữ lập trình phơi bày các chức năng, lớp và kiểu. Hệ điều hành phơi bày các cuộc gọi hệ thống. Một trình điều khiển thiết bị phơi bày các hoạt động cho hệ điều hành. Một dịch vụ từ xa phơi bày các tin nhắn qua mạng. Bảng thuật ngữ API NIST miêu tả một API như một điểm truy cập hoặc chức năng thư viện được xác định rõ, trong khi định nghĩa tập trung vào web của MDN đề cập đến các tính năng và quy tắc mã có sẵn cho các ứng dụng.
Cách gọi API Web hoạt động
API là gì dễ hoạt động hơn khi đường dẫn xử lý của nó rõ ràng. Các giai đoạn sau đây cho thấy nơi có thể thu thập bằng chứng và nơi chính sách có thể thay đổi kết quả.
Khám phá và hợp đồng
Người tiêu dùng đọc tài liệu hoặc mô tả có thể đọc được bởi máy để biết địa chỉ cơ bản, hoạt động, tham số, đại diện, phương thức xác thực, giới hạn và mô hình lỗi. Một hợp đồng có thể là tài liệu không chính thức hoặc một sơ đồ chính thức hỗ trợ việc xác thực và tạo công cụ.
Xử lý yêu cầu
Khách hàng xây dựng một yêu cầu, xác định bản thân khi cần thiết, và gửi đầu vào ở vị trí được xác định bởi giao diện. Một cổng hoặc dịch vụ xác thực người gọi, ủy quyền hoạt động, xác thực đầu vào, áp dụng chính sách, gọi logic ứng dụng và tạo ra một phản hồi.
Giải thích phản hồi
Khách hàng đánh giá trạng thái vận chuyển, lỗi ứng dụng, siêu dữ liệu và đại diện được trả về. Sau đó, nó ánh xạ kết quả vào các loại cục bộ hoặc hành vi hiển thị cho người dùng. Các khách hàng chính xác không giả định rằng một phản hồi hợp lệ về mặt cú pháp có nghĩa là hoạt động kinh doanh được yêu cầu thành công.
Các phần của hợp đồng API
Từ vựng xung quanh API là gì trải rộng từ kiến trúc, dữ liệu và hoạt động. Bảng giữ những trách nhiệm đó tách biệt để một cuộc đánh giá thiết kế có thể đặt ra câu hỏi đúng.
| Khái niệm | Ý nghĩa | Tín hiệu thực tiễn |
|---|---|---|
| Điểm cuối hoặc có thể gọi | Nơi hoặc cách một hoạt động được giải quyết. | Một URL, tên hàm, phương thức, chủ đề hoặc lệnh. |
| Hoạt động | Khả năng mà nhà cung cấp phơi bày. | Đọc một bản ghi, tạo một nhiệm vụ, chuyển đổi dữ liệu, hoặc kích hoạt một hành động. |
| Sơ đồ đầu vào | Các tham số và hình dạng cơ thể được chấp nhận. | Tên, kiểu, trường bắt buộc, phạm vi và giá trị mặc định. |
| Sơ đồ đầu ra | Dữ liệu và siêu dữ liệu được trả về. | Các trường, lồng ghép, tính khả dụng, phân trang và trạng thái. |
| Chính sách | Các quy tắc liên quan đến quyền truy cập và tiêu thụ. | Xác thực, ủy quyền, hạn ngạch, chi phí và sử dụng chấp nhận. |
Những gì API cho phép
Một trường hợp thực tế cho 'What Is an API' bắt đầu từ công việc mà hệ thống phải thực hiện. Những ví dụ này cho thấy yêu cầu đó thay đổi giao diện hoặc quyết định mạng như thế nào.
Tích hợp sản phẩm
Một khách hàng di động, web hoặc máy tính để bàn có thể sử dụng khả năng backend mà không cần tích hợp thực thi backend.
Tự động hóa
Các công việc và tác nhân theo lịch có thể thực hiện các hoạt động lặp lại thông qua một ranh giới phần mềm được tài liệu hóa.
Hệ sinh thái nền tảng
Các đối tác có thể xây dựng các phần mở rộng và quy trình làm việc chống lại các khả năng mà nhà cung cấp cố ý công khai.
Modular nội bộ
Các đội có thể chia một hệ thống thành các dịch vụ hoặc gói với các hợp đồng làm rõ quyền sở hữu và ranh giới thay đổi.
Cách đánh giá một API trước khi tích hợp
Bắt đầu với sự phù hợp. Xác nhận rằng API công khai hoạt động và dữ liệu cần thiết cho quy trình làm việc thực tế, bao gồm lọc, phân trang, thứ tự, độ mới và hành vi khu vực. Kiểm tra xem cách đại diện có chứa các định danh ổn định hay không và liệu các trường vắng mặt có bị bỏ qua hay được trả về dưới dạng null hay không. Một ví dụ trau chuốt không thay thế một hợp đồng hoàn chỉnh.
Kiểm tra các quy tắc hoạt động. Xác thực và cấp quyền xác định ai có thể gọi cái gì. Các giới hạn và điều kiện tải xác định hình dạng công việc khả thi. Chính sách phiên bản và mất hỗ trợ xác định rủi ro bảo trì. Tài liệu lỗi nên phân tách lỗi của người gọi, lỗi truy cập, điều kiện quota và lỗi của nhà cung cấp để khách hàng có thể thực hiện hành động an toàn và giới hạn.
Xem xét bảo mật như một phần của giao diện. The HTTP semantics specification xác định các phương thức yêu cầu, khái niệm trạng thái và siêu dữ liệu đại diện được nhiều API web sử dụng. Mã hóa vận chuyển bảo vệ dữ liệu đang di chuyển, nhưng ứng dụng vẫn cần thông tin xác thực có đặc quyền tối thiểu, xác thực đầu vào, lưu trữ bí mật, hồ sơ kiểm toán và kiểm soát để không tiết lộ các trường nhạy cảm.
Những sai lầm trong tích hợp API cần tránh
- Đối xử với các ví dụ như là toàn bộ sơ đồ. Các ví dụ có thể bỏ qua các trường tùy chọn, có thể null, phân trang hoặc lỗi mà lưu lượng sản xuất sẽ chứa.
- Nhúng thông tin xác thực trong mã nguồn. Bí mật nên đến từ một cơ chế thực thi được bảo vệ và cần được xác định phạm vi và luân chuyển theo chính sách của nhà cung cấp.
- Bỏ qua idempotency và các tác động trùng lặp. Một yêu cầu tạo ra hết thời gian có thể đã hoàn tất, vì vậy thiết kế biến đổi cần một cách tài liệu hóa để hòa giải kết quả.
- Giả định rằng mọi thành công đều giống nhau. Một số giao diện trả lại công việc đã được chấp nhận, dữ liệu một phần, cảnh báo hoặc định danh tác vụ không đồng bộ thay vì kết quả cuối cùng.
- Kết nối với hành vi không được tài liệu hóa. Thứ tự trường nội bộ, tiêu đề ngẫu nhiên và các điểm cuối không được liệt kê có thể thay đổi mà không có lời hứa tương thích.
APIs trong Quy trình Dữ liệu Web
Một API có cấu trúc có thể loại bỏ việc phân tích trình duyệt khỏi quy trình làm việc bằng cách trả về các bản ghi trực tiếp. Điều đó hoạt động khi nhà cung cấp công khai dữ liệu cần thiết và các điều khoản cho phép việc sử dụng dự kiến. Khi không có giao diện có cấu trúc phù hợp và thông tin có sẵn công khai, một hệ thống thu thập có thể cần một bước thu thập HTTP hoặc trình duyệt-rendering theo sau là trích xuất và chuẩn hóa.
Giữ việc thu thập, biến đổi và lưu trữ như các ranh giới tách biệt. Thành phần thu thập nên bảo tồn trạng thái nguồn và siêu dữ liệu liên quan. Việc biến đổi nên xác thực các trường và làm cho giá trị thiếu rõ ràng. Lưu trữ nên sử dụng các định danh ổn định và ghi lại nguồn gốc cần thiết cho việc quản trị. Sự tách biệt này ngăn chặn việc thay đổi định dạng nguồn làm hỏng dữ liệu phía hạ nguồn một cách im lặng.
Tài liệu hợp đồng phía khách hàng bên cạnh hợp đồng của nhà cung cấp: các hoạt động nào được sử dụng, trường nào là bắt buộc, khối lượng nào được mong đợi, cách cung cấp thông tin xác thực, và bằng chứng gì đánh dấu một kết quả hoàn chỉnh. Các bài kiểm tra nên bao gồm các tải trọng thành công và lỗi đại diện mà không phụ thuộc vào chi tiết thực hiện riêng tư.
Danh sách kiểm tra Đánh giá 'What Is an API'
Sử dụng các kiểm tra này để chuyển định nghĩa 'What Is an API' thành bằng chứng thực hiện mà một nhà phát triển, điều hành hoặc người đánh giá có thể tái sản xuất.
- Nêu lại ranh giới. Đối với 'What Is an API', xác định người gọi, nhà cung cấp, đường dẫn và sự kiện chính xác đánh dấu một kết quả hoàn chỉnh.
- Xác minh tuyên bố trung tâm. Xác nhận tuyên bố này với việc thực hiện và tài liệu của nó: Một API là một giao diện phần mềm đã được định nghĩa. Nó công khai các khả năng và quy tắc đã đặt tên để một thành phần có thể sử dụng thành phần khác mà không cần biết thực hiện bên trong của nó.
- Theo dõi cơ chế. Ghi lại khám phá và hợp đồng, xử lý yêu cầu, diễn giải phản hồi, và ghi nhận thành phần nào sở hữu từng giai đoạn.
- Kiểm tra sự phân biệt gần nhất. Tài liệu lý do tại sao Endpoint hoặc callable có nghĩa là “Nơi hoặc cách mà một hoạt động được giải quyết.” trong hệ thống này.
- Kiểm tra một trường hợp sử dụng đại diện. Sử dụng tích hợp sản phẩm với dữ liệu thực tế, vị trí, khối lượng và ranh giới quyền.
- Bảo vệ chống lại một sai lầm đã biết. Xem xét “Đối xử với các ví dụ như là toàn bộ sơ đồ.” và thêm một kiểm tra chấp nhận để bắt kịp nó.
- Giới hạn khối lượng công việc. Đặt các giới hạn phù hợp với chủ đề cho What Is an API, bao gồm payload, độ đồng thời, thời gian thực thi và đầu ra lưu trữ khi chúng áp dụng.
- Ghi lại quyết định. Giải thích tại sao What Is an API phù hợp với ranh giới này và nêu tên bằng chứng sẽ biện minh cho một cách tiếp cận khác sau đó.
Kết luận
What Is an API nên mô tả một phần thiết kế có thể kiểm tra được thay vì đóng vai trò như một nhãn lỏng lẻo cho hành vi lân cận. Việc xem xét nên bảo tồn quyết định trung tâm này: Một API là một giao diện phần mềm đã được xác định. Nó phơi bày các khả năng và quy tắc đã đặt tên để một thành phần có thể sử dụng thành phần khác mà không cần biết đến triển khai nội bộ của nó. Nó cũng nên bảo vệ việc coi các ví dụ như là toàn bộ sơ đồ. và giữ quyền truy cập What Is an API trong chính sách tài liệu cho giao diện hoặc mạng.
Sẵn sàng xây dựng dòng công việc dữ liệu web của bạn?
Kết nối một bước thu nhận hoặc tích hợp What Is an API đã được đo lường với các thực hành xác thực và lưu trữ đã được mô tả ở trên.
Đăng ký ngay hôm nay và nhận $5 tín dụng miễn phí — không yêu cầu thẻ tín dụng.
Nhận tín dụng $5 của bạn →Câu hỏi thường gặp
API viết tắt cho cái gì?
API viết tắt cho giao diện lập trình ứng dụng. Đây là một ranh giới đã được xác định qua đó phần mềm phơi bày các khả năng cho phần mềm khác, bao gồm các chức năng, kiểu, lời gọi hệ điều hành, thao tác thiết bị và thông điệp dịch vụ từ xa.
Mỗi API có phải là API web không?
Không. Các API web giao tiếp bằng cách sử dụng các công nghệ web, thường xuyên qua một mạng, nhưng thư viện, hệ điều hành, cơ sở dữ liệu và phần cứng cũng phơi bày các API. Ý tưởng chung là một giao diện đã được tài liệu, không phải một giao thức cụ thể.
API endpoint là gì?
Một API endpoint là một vị trí có thể truy cập được qua đó một máy khách truy cập một khả năng API từ xa. Trong các API HTTP, đó thường là một URL kết hợp với một phương thức và đầu vào đã được tài liệu, mặc dù hoạt động chính xác cũng có thể phụ thuộc vào các tiêu đề hoặc một thân yêu cầu.
Các API có luôn trả về JSON không?
Không. Các API có thể trả về JSON, XML, HTML, tệp nhị phân, thông điệp cụ thể cho giao thức, hoặc các giá trị gốc ngôn ngữ. JSON phổ biến trong các API web vì nó nhỏ gọn, dựa trên văn bản và được hỗ trợ rộng rãi, nhưng hợp đồng giao diện định nghĩa biểu diễn.