Triển khai: Phản hồi một phần

Những ví dụ sau đây minh họa cách truy xuất một phần phản hồi của API trong API Dữ liệu YouTube (v3).

Lưu ý: Hướng dẫn bắt đầu của API cung cấp thêm thông tin chi tiết về yêu cầu và phản hồi một phần.

API v3 cho phép thực sự yêu cầu truy xuất một phần tài nguyên để ứng dụng tránh bị chuyển, phân tích cú pháp và lưu trữ dữ liệu không cần thiết. Phương pháp này cũng đảm bảo rằng API sử dụng tài nguyên mạng, CPU và bộ nhớ hiệu quả hơn.

API này hỗ trợ hai tham số yêu cầu là partfields, cho phép bạn xác định các thuộc tính tài nguyên cần có trong phản hồi của API. Thông số part cũng xác định các thuộc tính cần được đặt bởi các yêu cầu API chèn hoặc cập nhật tài nguyên.

Xin lưu ý rằng nếu yêu cầu cập nhật không chỉ định giá trị cho một tài sản tài nguyên trước đây có giá trị, thì giá trị hiện tại sẽ bị xoá nếu các điều kiện sau đây đúng:

  • Bạn có thể sửa đổi giá trị của tài sản theo yêu cầu. (Ví dụ: khi cập nhật tài nguyên video, bạn có thể cập nhật giá trị của thuộc tính snippet.description, nhưng không thể cập nhật giá trị của đối tượng snippet.thumbnails.

  • Giá trị tham số part của yêu cầu xác định phần tài nguyên chứa thuộc tính.

Ví dụ:

Ví dụ: Giả sử bạn muốn cập nhật tài nguyên video được hiển thị bên dưới. (Xin lưu ý rằng tất cả thuộc tính hiển thị bên dưới đều có thể được cập nhật thông qua API và các thuộc tính tài nguyên không liên quan đến ví dụ đã bị bỏ qua.)

{
  "snippet": {
    "title": "Old video title",
    "description": "Old video description",
    "tags": ["keyword1","keyword2","keyword3"],
    "categoryId: 22
  },
  "status": {
    "privacyStatus": "private",
    "publishAt": "2014-09-01T12:00:00.0Z",
    "license": "youtube",
    "embeddable": True,
    "publicStatsViewable": True
  }
}

Bạn gọi phương thức videos.update và đặt giá trị tham số part thành snippet. Phần nội dung của yêu cầu API chứa tài nguyên sau:

{
  "snippet": {
    "title": "New video title",
    "tags": ["keyword1","keyword2","keyword3"],
    "categoryId: 22
  }
}

Yêu cầu này cập nhật tiêu đề của video, xóa mô tả của video và không thay đổi thẻ hoặc mã danh mục của video. Nội dung mô tả của video bị xoá vì yêu cầu này không chỉ định giá trị cho thuộc tính snippet.description.

Các thuộc tính trong đối tượng status hoàn toàn không bị ảnh hưởng vì giá trị tham số part không bao gồm status như một trong các phần mà yêu cầu sẽ cập nhật. Trên thực tế, nếu nội dung của yêu cầu API bao gồm đối tượng status, thì API sẽ trả về phản hồi HTTP 400 (Bad Request) do một phần không mong muốn được đưa vào nội dung yêu cầu.