Một tài nguyên là thứ mà bạn đang làm việc. Ví dụ: nếu bạn có API để chuyển đổi một loại đèn nhất định, thì tài nguyên chính là đèn. Tài nguyên có thể là vật lý (ví dụ: đèn, người) hoặc phi vật lý (ví dụ: bài viết, vai trò, một hàng trong cơ sở dữ liệu), tài nguyên có thể là chính (ví dụ: số dư) hoặc dẫn xuất (ví dụ: giao dịch). Một tài nguyên có thể đề cập đến một thực thể cụ thể (ví dụ: đèn thứ năm được lắp đặt trong ổ cắm đèn này) hoặc có thể đề cập đến vai trò ánh xạ tới thực thể khác nhau vào các thời điểm khác nhau (ví dụ: đèn hiện được cài đặt, đèn được cài đặt vào ngày 5 tháng 8 năm 2008) hoặc nó có thể ánh xạ tới nhiều thực thể (ví dụ như tất cả các đèn trong nhà).
Việc thể hiện tài nguyên là cách dịch vụ của bạn truyền đạt trạng thái của tài nguyên, ví dụ XML, JSON đại diện cho trạng thái của đèn.
Trong API REST, tài nguyên được xác định bởi một mã định danh thống nhất (ví dụ: URI). Một tài nguyên có thể có nhiều biểu diễn, trong HTTP REST API, bạn thường chỉ ra biểu diễn bạn muốn sử dụng trong các tiêu đề Loại nội dung và Chấp nhận HTTP.
Một nhận thức quan trọng trong kiến trúc máy chủ máy khách là bạn không thể mang tài nguyên đến máy khách và bạn không nên cố gắng làm cho nó giống như bạn. Thay vào đó, trong API REST, bạn thao tác từ xa một tài nguyên bằng cách chuyển các biểu diễn của tài nguyên. Hãy nghĩ về điều này giống như, bạn không FedEx đèn để khách hàng có thể thao tác trực tiếp với đèn, mà thay vào đó, dịch vụ tạo ra biểu diễn XML / JSON / protobuf / CSV của đèn và khách hàng gửi đại diện cho các thao tác dự định. Sau đó, dịch vụ sẽ xử lý trạng thái thực tế của đèn thay cho khách hàng hoặc từ chối yêu cầu, cho biết nếu khách hàng không được phép thực hiện các thao tác trên đèn. Điều này có vẻ rõ ràng / chia tóc, nhưng điều quan trọng cần lưu ý là vì đại diện không phải là tài nguyên,