REST là gì?
Chuyển trạng thai biểu hiện. Nó mô tả làm thế nào một hệ thống có thể giao tiếp trạng thái với một hệ thống khác. Một ví dụ sẽ là trạng thái của sản phẩm (tên, mô tả, v.v.) được biểu thị dưới dạng XML, JSON hoặc văn bản thuần túy. Ý tưởng tổng quát của nhà nước được gọi là một tài nguyên.
Nó chiếm vị trí nào trong một hệ sinh thái kiến trúc web?
REST thường được liên kết với giao diện dịch vụ web vì HTTP là giao thức mạng phổ biến nhất. Trong mô hình 7 lớp, nó tồn tại ở lớp ứng dụng . Tuy nhiên, xem phần tiếp theo.
Làm thế nào chặt chẽ (hoặc lỏng lẻo) nó được kết hợp với giao thức?
REST không phải là HTTP. Nó sử dụng HTTP bởi vì ở dạng chung nhất REST tồn tại để hỗ trợ một máy trong việc ánh xạ khái niệm động từ chống lại một bộ danh từ tùy ý. HTTP chứa một tập hợp các động từ chung hữu ích (GET, PUT, PATCH, v.v.) có thể áp dụng cho các danh từ tùy ý được biểu thị dưới dạng URI bằng cách sử dụng HTTP, ví dụ GET http://example.org/ Productt (54 ).
Các lựa chọn thay thế cho REST là gì và REST so sánh với chúng như thế nào
Điều này giống như hỏi "Làm thế nào RESTful là cách tiếp cận của tôi?" Sử dụng danh sách sau đây (được tóm tắt từ Mô hình trưởng thành của Richardson như được mô tả bởi Martin Fowler ):
Cấp 0 - Đầm lầy của POX
Sử dụng POST cho mọi thứ (đọc, viết, xóa). Đây là SOAP, POX, RPI, v.v. Bạn chỉ đang sử dụng HTTP làm đường hầm cho giao thức của riêng mình. Bạn nhắm mục tiêu một điểm cuối duy nhất thực hiện mọi thứ dựa trên nội dung của nội dung yêu cầu.
Cấp 1 - Tài nguyên
Sử dụng POST cho mọi thứ. Nhắm mục tiêu nhiều điểm cuối được thiết kế để cung cấp thông tin về một điều cụ thể. Bạn vừa phát hiện ra tài nguyên.
Cấp độ 2 - Động từ HTTP
Sử dụng động từ HTTP chống lại tài nguyên. Bây giờ bạn đang NHẬN nó. POST là để tạo, PUT là ghi đè, TÙY CHỌN cho các hoạt động có sẵn, XÓA để xóa, tốt, xóa tài nguyên. Do việc sử dụng các động từ này, các mã trạng thái HTTP khác nhau bắt đầu trở nên phù hợp hơn (202 CHẤP NHẬN ai?).
Cấp độ 3 - Kiểm soát Hypermedia ( HATEOAS )
Tại thời điểm này, bạn thực hiện bước nhảy vọt cuối cùng và giới thiệu hypermedia như một cơ chế kiểm soát dòng chảy. Máy khách REST không cần có kiến thức trước về cách tương tác với bất kỳ ứng dụng hoặc máy chủ cụ thể nào ngoài sự hiểu biết chung về hypermedia. Điều này có thể được truyền đạt trong HTTP thông qua trường tiêu đề Kiểu nội dung. Các định dạng văn bản bao gồm AtomPub và (ngắn gọn hơn) HAL , trong khi HyperAudio hoạt động tốt cho các luồng âm thanh (xem SoundCloud et al)