Giới thiệu về API REST

API REST là gì theo quan điểm của người tạo ra REST API và từ quan điểm của người tiêu dùng

API là viết tắt của Giao diện lập trình ứng dụng, và đó là một thuật ngữ chung xác định những thứ khác nhau.

Chúng tôi đã thấy cách trình duyệt có thể cung cấp một số API, dưới dạng các chức năng có sẵn cho chúng tôi.

Chúng tôi đã thấy cách Node.js cung cấp cho chúng tôi một API lập trình với các mô-đun mặc định của nó.

API cũng có nghĩa khác: tạo ra một dịch vụ thể hiện một số chức năng cụ thể, được cung cấp thông qua một máy chủ có thể được nhiều máy khách truy cập.

Nói rộng ra, chúng tôi hiện có 2 loại API: API REST và API GraphQL.

Các loại mô hình API khác tồn tại, chẳng hạn như SOAP, nhưng chúng không phổ biến lắm trong thế giới JavaScript.

Trong bài đăng này, chúng ta sẽ nói về các API REST.

Điểm cuối

Trong API REST, chúng tôi tạo ra một sốđiểm cuốimà khách hàng có thể truy cập.

Giả sử chúng tôi muốn tiết lộ danh sách mọi người. Chúng tôi có thể tạo một điểm cuối sẽ phản hồi/people lộ trình.

Nếu dịch vụ của chúng tôi lắng nghe trên miềntest.com, chúng tôi sẽ cótest.com/peopleURL.

Điểm cuối này sẽ cung cấp dữ liệu ở bất kỳ định dạng nào, nhưng nói chung chúng tôi sử dụngJSON, một định dạng dựa trên văn bản tiện dụng được sử dụng để giao tiếp dữ liệu giữa hai dịch vụ.

Điều này/peopleđiểm cuối có thể cung cấp danh sách tên của mọi người vàidCho mỗi người. Đây có thể làidmà chúng tôi sử dụng để lưu trữ chúng trong cơ sở dữ liệu chẳng hạn.

Hệ thống của chúng tôi cũng có thể hiển thị một điểm cuối khác mà chúng tôi có thể gọi là/person. Điều này chấp nhận mộtidxác định duy nhất một người, như thế này:/person/1

API của chúng tôi sẽ cung cấp thêm thông tin về người đó, ví dụ như tuổi, email, địa chỉ.

Điều quan trọng cần lưu ý là ở điểm cuối đầu tiên, chúng tôi không có bất kỳ tham số nào, nhưng lần này chúng tôi có một tham số.

Các tham số có thể được gửi theo nhiều cách khác nhau và không phải tất cả các điểm cuối sẽ được sử dụng để gửi thông tin từ máy chủ. Một số điểm cuối khác sẽ được sử dụng để thực hiện các hành động, như chúng ta sẽ sớm thấy.

Phương pháp

Tôi đã đề cập rằng/peopleendpoint sẽ trả về danh sách những người trong hệ thống của chúng tôi.

Đây là một sự đơn giản hóa và đã đến lúc tìm hiểu sâu hơn.

API REST sử dụng các nguyên tắc giao thức HTTP để cung cấp các chức năng khác nhau dựa trênPhương thức HTTPđã sử dụng:GET,POST,PUT,DELETE.

GETlà một trong những phổ biến nhất. Khi khách hàng gọi điểm cuối API của chúng tôi bằng phương thức GET, nó báo hiệu rằng nó muốn đọc dữ liệu.

GET /peoplesẽ trả về một danh sách những người.

GET /person/1sẽ trả về một người chi tiết.

Khi phương thức HTTP làPOST, ý nghĩa hoàn toàn khác. Điểm cuối sẽ giống nhau, nhưng hành động được yêu cầu sẽ là một điểm khác.

Chúng tôi, với tư cách là những người xây dựng API, xác định nghĩa của hte là gì.

Ví dụ, chúng tôi có thể tạo mộtPOST /personđiểm cuối mà khi được gọi sẽ tạo ra một người mới trong cơ sở dữ liệu.

Nó nhận dữ liệu từ máy khách, ở định dạng được xác định trước mà chúng ta có thể chọn. Chúng ta sẽ sớm thấy một ví dụ được thực hiện bằng cách sử dụng Express.

GETPOSTlà 2 động từ chính được sử dụng.

Đôi khi chúng tôi sử dụngPUTDELETE:PUTđôi khi được sử dụng để cập nhật tài nguyên, chẳng hạn như thay đổi địa chỉ của một người.DELETEđược sử dụng để loại bỏ một tài nguyên.

Những lần khác,POSTđược sử dụng cho mọi thứ không đọc, ở đâuGETĐược sử dụng.

Chúng tôi có quyền tự do trong sự lựa chọn này.

Theo tài nguyên, chúng tôi có nghĩa là một thực thể, như mọi người ở dạng số nhiều trong trường hợp/people, hoặc một người duy nhất trong trường hợp/person.

Đặt tên điểm cuối API

Nhìn cách tôi đã sử dụng/people/personở trên.

Những người đang códanh từ.

Sử dụng danh từ cho điểm cuối và sử dụng phương thức HTTP để báo hiệu hành động được coi là phương pháp hay nhất.

Cập nhật một người sử dụng mộtPOSTyêu cầu/personđiểm cuối.

Nếu bạn muốn tạo một API để gửi tin nhắn cho một người, bạn sẽ tạoPOSTyêu cầu sử dụng một/messageđiểm cuối, chuyển dữ liệu đến nó để xác định người và thông điệp bạn muốn gửi.

API REST không có trạng thái

API REST là không trạng thái.

Điều này có nghĩa là nó không có bất kỳ bộ nhớ nào giữa các yêu cầu khác nhau.

Hầu hết các API mà bạn có thể tìm thấy đều triển khai cơ chế Khóa API dùng như một cách để theo dõi ai đang gọi một API và cung cấp một cách để giám sát việc sử dụng và giới hạn buộc.

Một API cũng có thể được bảo vệ bằng cơ chế đăng nhập / mật khẩu. Trong trường hợp này, quy trình xác thực API sẽ cần phải xem xét quy trình bắt tay cung cấp mã thông báo sau đó cần được gửi trong mọi yêu cầu trong tương lai, để xác định người dùng và ủy quyền chính xác.

Phản hồi

Một lệnh gọi API sẽ trả về phản hồi cho người dùng, ở 2 dạng: mã trạng thái phản hồi HTTP và nội dung phản hồi HTTP.

Mọi yêu cầu HTTP đều có mã trạng thái.

Chúng tôi có một số quy ước về mã trạng thái phản hồi HTTP: khi bạn sử dụng trình duyệt để mở một trang web, trang sẽ trả về200 OKmã trạng thái. Nếu trang không được tìm thấy,404 NOT FOUNDmã trạng thái.

Điều tương tự cũng hoạt động đối với các API của chúng tôi.

Những cái thường gặp là:

  • 200 OK: đây là phản hồi tiêu chuẩn cho các yêu cầu HTTP thành công.
  • 201 Created: Thường là phản hồi cho một yêu cầu ĐĂNG. Yêu cầu đã được hoàn thành và một tài nguyên mới đã được tạo.
  • 400 Bad RequestDo lỗi yêu cầu được tạo trên máy khách, máy chủ không thể xử lý yêu cầu. Các lỗi có thể bao gồm một yêu cầu không đúng định dạng, kích thước quá lớn để xử lý hoặc các lỗi khác
  • 401 UnauthorizedĐược gửi khi yêu cầu xác thực và ứng dụng khách không được ủy quyền
  • 403 ForbiddenTài nguyên không có sẵn vì nhiều lý do. Nếu lý do là xác thực, hãy chọn mã trạng thái 401 Không được phép.
  • 404 Not FoundKhông thể tìm thấy tài nguyên được yêu cầu.
  • 405 Method Not AllowedTài nguyên không có sẵn thông qua phương thức HTTP đó, nhưng có thể ở một phương thức khác.
  • 500 Internal Server ErrorThông báo lỗi máy chủ chung, được đưa ra khi gặp phải điều kiện không mong muốn và không có thông báo cụ thể nào phù hợp.

Bạn có thể tìm thấy danh sách đầy đủ trênDanh sách mã trạng thái HTTP. Điều cần lưu ý là khi bạn tạo một API, bạn phải luôn trả về mã trạng thái chính xác để thông báo cho khách hàng của bạn.

Nội dung phản hồi thường là một phản hồi JSON với dữ liệu được yêu cầu hoặc một thông báo lỗi.

Chi tiết về cách xây dựng thông báo do bạn, người tạo API hoặc người xây dựng API quyết định.


Các hướng dẫn khác về mạng: