REST API là gì? Ràng buộc, Tài nguyên và Thiết kế

Cái gì là REST API? Ràng buộc, Tài nguyên và Thiết kế

API thu thập dữ liệu không scrapeless cung cấp các giao diện HTTP cụ thể cho nhiệm vụ trả về dữ liệu web công khai có cấu trúc cho các quy trình công việc ứng dụng.

TL;DR

  • REST là một phong cách kiến trúc. Một REST API áp dụng các ràng buộc cho tương tác mạng thay vì quy định một mẫu endpoint hoặc định dạng dữ liệu.
  • Tài nguyên được xác định và trao đổi thông qua các bản đại diện. Một khách hàng hành động dựa trên trạng thái tài nguyên mà không nhận được đối tượng nội bộ của máy chủ trực tiếp.
  • HTTP phù hợp với REST nhưng không đảm bảo điều đó. Sử dụng URL, JSON và các phương pháp thông dụng vẫn có thể tạo ra giao diện kiểu RPC.
  • Yêu cầu không trạng thái mang theo ngữ cảnh cần thiết để xử lý. Dữ liệu ứng dụng phía máy chủ vẫn tồn tại; ràng buộc liên quan đến trạng thái phiên trò chuyện của client.
  • Khả năng lưu trữ và giao diện đồng nhất hỗ trợ khả năng mở rộng. Chúng giảm thiểu sự liên kết và cho phép các trung gian hiểu các tương tác.

REST API Được Định Nghĩa

Một REST API là một giao diện lập trình ứng dụng được thiết kế theo phong cách kiến trúc Chuyển trạng thái Đại diện. REST mô tả các ràng buộc cho các thành phần trong một hệ thống siêu phương tiện phân tán. Nó không yêu cầu JSON, một mẫu URL cụ thể, hoặc một ngôn ngữ lập trình cụ thể. Các API Web thường áp dụng các ý tưởng REST thông qua HTTP vì HTTP đã cung cấp các định danh, phương thức, đại diện, siêu dữ liệu, caching, và trung gian.

Trừu tượng trung tâm là một tài nguyên: một khái niệm mà có thể được xác định theo thời gian. Một máy chủ gửi một đại diện của tình trạng tài nguyên, chẳng hạn như một tài liệu JSON hoặc XML, chứ không phải chuyển giao đối tượng cơ sở dữ liệu nội bộ của nó. Khách hàng diễn giải đại diện đó và theo dõi nghĩa tắc của giao diện. Mô hình kiến trúc REST gốc giải thích cách mà các ràng buộc hỗ trợ khả năng hiển thị, khả năng mở rộng và sự phát triển độc lập.

Các ràng buộc REST trong thực tiễn

Cơ chế đằng sau What Is a REST API vượt qua hơn một ranh giới phần mềm hoặc mạng. Đặt tên cho từng giai đoạn làm cho việc đánh giá hiệu suất, độ chính xác và an ninh trở nên cụ thể.

Tương tác giữa máy khách và máy chủ và không trạng thái

Mối quan tâm của khách hàng được tách biệt khỏi dữ liệu và hành vi của máy chủ. Mỗi yêu cầu chứa thông tin cần thiết để hiểu nó, thay vì phụ thuộc vào trạng thái trò chuyện ẩn từ yêu cầu trước đó. Trạng thái xác thực hoặc tài nguyên đã lưu có thể tồn tại; ràng buộc không yêu cầu một máy chủ không có bộ nhớ.

Hệ thống bộ nhớ đệm và phân lớp

Các phản hồi xác định xem chúng có thể được tái sử dụng hay không. Cổng, proxy và các trung gian khác có thể ngồi giữa máy khách và nguồn gốc mà không thay đổi giao diện mà máy khách thấy. Siêu dữ liệu chính xác cho phép bộ nhớ đệm giảm bớt công việc lặp đi lặp lại trong khi vẫn giữ nguyên ngữ nghĩa biểu diễn.

Giao diện đồng nhất và mã tùy chọn theo yêu cầu

Các thành phần tương tác thông qua một tập hợp các khái niệm nhất quán: tài nguyên đã được xác định, đại diện, thông điệp tự mô tả và điều khiển hypermedia. Code theo yêu cầu là ràng buộc tùy chọn, cho phép mã thực thi mở rộng hành vi của khách hàng khi hệ thống quyết định sử dụng nó.

Khái niệm REST và Biểu hiện HTTP của Chúng

Các nhóm thường đồng ý về một nhãn trong khi giả định hành vi khác nhau. Những hàng này biến "API REST là gì" thành các câu hỏi hợp đồng và vận hành rõ ràng.

Khái niệmÝ nghĩaTín hiệu thực tiễn
Định danh tài nguyênĐặt tên cho nguồn tài nguyên khái niệm.Một URI HTTP như địa chỉ bộ sưu tập hoặc bản ghi.
Đại diệnMang đến cái nhìn hiện tại về trạng thái tài nguyên.JSON, XML, HTML, một tài liệu, hoặc một loại phương tiện thương lượng khác.
Ý nghĩa phương thứcDiễn đạt ý định của một tương tác.Đọc an toàn, tạo, thay thế, sửa đổi, hoặc xóa như đã được tài liệu.
Trạng thái và siêu dữ liệuMô tả kết quả và đại diện.Mã trạng thái, loại nội dung, bộ xác thực, kiểm soát bộ nhớ đệm và liên kết.
Điều khiển siêu phương tiệnQuảng cáo các trạng thái chuyển tiếp có sẵn.Liên kết hoặc biểu mẫu có nghĩa được xác định bởi loại phương tiện và mối quan hệ.

Nơi REST API Thích Hợp Nhất

Lý do mạnh mẽ nhất để áp dụng hoặc tối ưu hóa What Is a REST API là sự phù hợp có thể đo lường với quy trình làm việc.

Các dịch vụ theo hướng tài nguyên

Các bộ sưu tập và hồ sơ ánh xạ một cách tự nhiên tới các định danh ổn định và ngữ nghĩa tương tác tiêu chuẩn.

API nền tảng công cộng

Công cụ HTTP, bộ nhớ đệm, cổng và hỗ trợ ngôn ngữ rộng rãi làm cho giao diện trở nên dễ tiếp cận hơn giữa các tổ chức.

Khách hàng độc lập

Một giao diện đồng nhất ổn định cho phép khách hàng di động, web, dòng lệnh và đối tác phát triển theo các lịch phát hành riêng biệt.

Đọc có thể lưu vào bộ nhớ đệm

Các đại diện với bộ xác thực và siêu dữ liệu tươi mới chính xác có thể giảm thiểu công việc nguồn và truyền tải mạng.

Cách thiết kế hoặc đánh giá một REST API

Bắt đầu với các tài nguyên miền và các định danh của chúng, sau đó xác định các đại diện và chuyển tiếp. Tránh việc biến mọi hành động kinh doanh thành một URL hình động từ tùy ý. Một số thao tác không ánh xạ một cách gọn gàng tới các thay đổi tài nguyên cơ bản; chúng vẫn có thể được mô hình hóa như là tài nguyên, công việc hoặc lệnh, nhưng độ rõ ràng quan trọng hơn vẻ bề ngoài.

Sử dụng ngữ nghĩa HTTP một cách nhất quán. Tiêu chuẩn ngữ nghĩa HTTP hiện tại định nghĩa các thuộc tính phương thức, mã trạng thái, trường và khái niệm đại diện. Một phương thức an toàn không nên được tài liệu hóa để thực hiện một thay đổi kinh doanh không an toàn. Siêu dữ liệu bộ nhớ đệm, yêu cầu điều kiện và thương thảo nội dung nên phản ánh hành vi thực tế chứ không phải tiêu đề sao chép.

Thiết kế các lỗi và phân trang như là các phần hạng nhất của hợp đồng. Các khách hàng cần định danh lỗi ổn định, thông tin dễ đọc cho con người, ngữ cảnh xác thực cấp trường và một cách để tương quan các sự cố. Các bộ sưu tập lớn cần các quy tắc sắp xếp xác định và tiếp tục mà vẫn đúng khi dữ liệu thay đổi. Quyền truy cập nên được đánh giá cho mỗi tài nguyên và thao tác, không chỉ được suy ra từ quyền sở hữu một định danh.

Các lỗi thiết kế REST API phổ biến

  • Gọi bất kỳ giao diện JSON-over-HTTP nào là REST. Phương tiện chuyên chở và loại không chứng minh rằng các ràng buộc kiến trúc có mặt.
  • Nhầm lẫn không trạng thái với việc không lưu trữ dữ liệu. Các máy chủ REST lưu trữ tài nguyên; chúng tránh bối cảnh trò chuyện ẩn cần thiết để diễn giải các yêu cầu sau này.
  • Trả về một trạng thái cho mọi kết quả. Các khách hàng mất ngữ nghĩa hữu ích khi xác thực, ủy quyền, vắng mặt, xung đột và thất bại của máy chủ trông giống nhau.
  • Sử dụng tiêu đề bộ nhớ đệm mà không có một mô hình. Thông tin tươi mới hoặc bộ xác thực không chính xác có thể phục vụ dữ liệu cũ hoặc ngăn cản việc tái sử dụng an toàn.
  • Phá vỡ các định danh trong quá trình thay đổi phiên bản. Định danh tài nguyên ổn định và chính sách tương thích rõ ràng quan trọng hơn những quy ước URL trang trí.

REST APIs trong hệ thống thu thập dữ liệu

Một nguồn dữ liệu theo phong cách REST thường tiết lộ các bộ sưu tập phân trang và tài nguyên mục. Một người thu thập nên theo các liên kết tiếp tục hoặc con trỏ đã được tài liệu, ghi lại siêu dữ liệu phản hồi, xác thực đại diện và giữ lại các định danh nguồn. Nó không nên phát minh ra phép toán trang chưa được tài liệu khi API cung cấp một điều khiển tiếp tục.

Các yêu cầu điều kiện có thể làm cho việc thu thập lặp lại hiệu quả hơn khi dịch vụ công bố các bộ xác thực. Khách hàng hỏi xem một đại diện có thay đổi hay không và xử lý một thân chỉ khi cần thiết. Điều này có thể giảm thiểu việc truyền tải và công việc nguồn, nhưng chỉ khi hợp đồng nguồn tài liệu ngữ nghĩa và người thu thập lưu trữ các bộ xác thực với tài nguyên tương ứng.

Khi dữ liệu công cộng cần thiết chỉ có sẵn thông qua một trang đã được kết xuất, một trình duyệt hoặc giao diện cạo có thể cung cấp lớp thu thập. Giữ bước đó tách biệt khỏi dịch vụ REST nội bộ đã được chuẩn hóa được tiết lộ cho người tiêu dùng downstream. Sự tách biệt cho phép kết xuất và phân tích cụ thể nguồn thay đổi mà không buộc mọi người tiêu dùng phải thay đổi.

Danh sách kiểm tra đánh giá What Is a REST API

Sử dụng những kiểm tra này để chuyển định nghĩa What Is a REST API thành bằng chứng thực hiện mà một nhà phát triển, người vận hành hoặc người kiểm tra có thể tái tạo.

  1. Nhắc lại ranh giới. Đối với What Is a REST 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.
  2. Xác nhận 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ó: REST là một phong cách kiến trúc. Một REST API áp dụng các ràng buộc cho tương tác mạng thay vì quy định một mẫu điểm cuối hoặc định dạng dữ liệu.
  3. Theo dõi cơ chế. Quan sát tương tác client-server và không trạng thái, bộ nhớ đệm và hệ thống lớp, giao diện đồng nhất và mã tùy chọn theo yêu cầu, và ghi lại thành phần nào sở hữu mỗi giai đoạn.
  4. Kiểm tra sự phân biệt gần nhất. Tài liệu lý do tại sao Định danh tài nguyên có nghĩa là “Đặt tên cho tài nguyên khái niệm.” trong hệ thống này.
  5. Kiểm tra một trường hợp sử dụng đại diện. Sử dụng các dịch vụ theo hướng tài nguyên với dữ liệu thực tế, vị trí, khối lượng và ranh giới quyền truy cập.
  6. Bảo vệ chống lại một sai lầm đã biết. Xem xét “Gọi bất kỳ giao diện JSON-over-HTTP nào là REST.” và thêm một kiểm tra chấp nhận để bắt được nó.
  7. Giới hạn khối lượng công việc. Đặt giới hạn phù hợp với chủ đề cho What Is a REST API, bao gồm payload, độ đồng thời, thời gian thực thi và đầu ra đã lưu trữ nơi chúng áp dụng.
  8. Ghi lại quyết định. Giải thích lý do tại sao What Is a REST API phù hợp với ranh giới này và nêu chứng cứ mà lại biện minh cho một cách tiếp cận khác sau này.

Kết luận

What Is a REST API nên mô tả một phần thiết kế có thể kiểm tra thay vì chỉ đóng vai trò như một nhãn lỏng lẻo cho hành vi lân cận. Cuộc đánh giá nên bảo tồn quyết định trung tâm này: REST là một kiểu kiến trúc. Một REST API áp dụng các hạn chế cho tương tác mạng thay vì quy định một mẫu điểm cuối hoặc định dạng dữ liệu nào. Nó cũng nên bảo vệ việc gọi bất kỳ giao diện json-over-http nào là rest. và giữ quyền truy cập What Is a REST API trong chính sách đã được tài liệu hóa cho giao diện hoặc mạng.

Sẵn sàng để Xây dựng Quy trình Dữ liệu Web của bạn?

Kết nối một bước tiếp nhận hoặc tích hợp What Is a REST API đã đo để xác thực và lưu trữ các thực tiễn đượ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

REST là viết tắt của cái gì?

REST là viết tắt của Chuyển giao Trạng thái Đại diện. Tên này ám chỉ việc chuyển giao các đại diện của trạng thái tài nguyên thông qua một kiểu kiến trúc có giới hạn, theo định hướng mạng.

Một REST API có luôn là HTTP và JSON không?

Không. REST là một kiểu kiến trúc và không bắt buộc phải sử dụng HTTP hay JSON. HTTP tương thích tốt với các khái niệm REST, và JSON là một đại diện phổ biến, vì vậy sự kết hợp này rất phổ biến.

Cái gì khiến một API trở thành RESTful?

Một API RESTful tuân theo các hạn chế của REST: phân tách client-server, tương tác không trạng thái, khả năng lưu trữ, giao diện đồng nhất, hệ thống nhiều tầng, và tùy chọn mã theo yêu cầu. Các giao diện thực tế có thể áp dụng các hạn chế này ở các mức độ khác nhau.

Sự khác biệt giữa REST và RESTful là gì?

REST đặt tên cho kiểu kiến trúc, trong khi RESTful mô tả một hệ thống được thiết kế phù hợp với kiểu đó. Trong các cuộc thảo luận API thông thường, REST API và RESTful API thường được sử dụng thay thế cho nhau.

Tài liệu tham khảo