Tài liệu này bao gồm một số kỹ thuật mà bạn có thể sử dụng để cải thiện hiệu suất của ứng dụng của bạn. Trong một số trường hợp, ví dụ từ các API được triển khai khác sẽ được sử dụng để minh hoạ cho ý tưởng đã trình bày. Tuy nhiên, các khái niệm tương tự vẫn được áp dụng cho chiến dịch Hiển thị và API Video 360.
Xử lý các tài nguyên một phần
Một cách khác để cải thiện hiệu suất của lệnh gọi API là chỉ yêu cầu phần dữ liệu mà bạn quan tâm. Điều này cho phép ứng dụng của bạn tránh chuyển, phân tích cú pháp và lưu trữ các trường không cần thiết để có thể sử dụng các tài nguyên như mạng, CPU và bộ nhớ một cách hiệu quả hơn.
Phản hồi một phần
Theo mặc định, máy chủ sẽ gửi lại bản trình bày đầy đủ của tài nguyên sau đang xử lý yêu cầu. Để đạt được hiệu suất tốt hơn, bạn có thể yêu cầu máy chủ gửi chỉ những trường bạn thực sự cần và nhận phản hồi một phần.
Để yêu cầu phản hồi một phần, hãy sử dụng tham số yêu cầu fields
để chỉ định
các trường bạn muốn được trả về. Bạn có thể sử dụng thông số này với bất kỳ yêu cầu nào
trả về dữ liệu phản hồi.
Ví dụ:
Ví dụ sau đây cho thấy cách sử dụng tham số fields
với
Hiển thị và API Video 360.
Yêu cầu đơn giản: Yêu cầu HTTP GET
này bỏ qua tham số fields
và
sẽ trả về toàn bộ tài nguyên.
GET https://displayvideo.googleapis.com/v3/advertisers?partnerId=1
Phản hồi đầy đủ về tài nguyên: Dữ liệu tài nguyên đầy đủ bao gồm: cùng với nhiều trường khác đã bị bỏ qua để cho ngắn gọn.
200 OK
{
"advertisers": [
{
"name": "advertisers/1",
"advertiserId": "1",
"partnerId": "1",
"displayName": "Example Advertiser 1",
"entityStatus": "ENTITY_STATUS_ACTIVE",
"updateTime": "2019-01-01T00:00:00.000000Z",
"generalConfig": {
"domainUrl": "http://example.com",
"timeZone": "America/New_York",
"currencyCode": "USD",
"address": {
}
},
"adServerConfig": {
"thirdPartyOnlyConfig": {
}
},
"creativeConfig": {
},
"dataAccessConfig": {
"sdfConfig": {
"sdfConfig": {
"version": "VERSION_3_1"
}
}
},
"integrationDetails": {
}
},
{
"name": "advertisers/2",
"advertiserId": "2",
"partnerId": "1",
"displayName": "Example Advertiser 2",
"entityStatus": "ENTITY_STATUS_ACTIVE",
"updateTime": "2019-01-01T00:00:00.000000Z",
"generalConfig": {
"domainUrl": "http://example.com",
"timeZone": "America/New_York",
"currencyCode": "USD",
"address": {
}
},
"adServerConfig": {
"thirdPartyOnlyConfig": {
}
},
"creativeConfig": {
},
"dataAccessConfig": {
"sdfConfig": {
"sdfConfig": {
"version": "VERSION_3_1"
}
}
},
"integrationDetails": {
}
},
...
],
"nextPageToken": "..."
}
Yêu cầu phản hồi một phần: Yêu cầu sau đây cho cùng một tài nguyên này
sử dụng tham số fields
để giảm đáng kể lượng dữ liệu được trả về.
GET https://displayvideo.googleapis.com/v3/advertisers?partnerId=1&fields=advertisers(advertiserId,partnerId,displayName)
Phản hồi một phần: Để phản hồi yêu cầu trên, máy chủ sẽ gửi lại một chứa một mảng nhà quảng cáo tương đối nhỏ chỉ bao gồm mã nhận dạng nhà quảng cáo, tên hiển thị và thuộc tính mã đối tác của mỗi nhà quảng cáo, nếu hiện tại.
200 OK
{
"advertisers": [
{
"advertiserId": "1",
"partnerId": "1",
"displayName": "Example Advertiser 1"
},
{
"advertiserId": "2",
"partnerId": "1",
"displayName": "Example Advertiser 2"
},
...
]
}
Lưu ý rằng phản hồi là đối tượng JSON chỉ bao gồm các trường đã chọn và các đối tượng mẹ đi kèm.
Thông tin chi tiết về cách định dạng tham số fields
sẽ được trình bày trong phần tiếp theo, sau đó là
thêm thông tin chi tiết về dữ liệu chính xác được trả về trong phản hồi.
Tóm tắt cú pháp tham số trường
Định dạng của giá trị tham số yêu cầu fields
rộng rãi dựa trên kiếm
của bạn. Cú pháp được hỗ trợ được tóm tắt bên dưới và các ví dụ khác là
được cung cấp trong phần sau.
Sử dụng danh sách được phân tách bằng dấu phẩy để chọn nhiều trường.
Sử dụng
a/b
để chọn một trườngb
được lồng trong trườnga
; sử dụnga/b/c
để chọn một trườngc
lồng trongb
.Sử dụng bộ chọn phụ để yêu cầu một tập hợp các trường phụ cụ thể của mảng hoặc bằng cách đặt biểu thức trong dấu ngoặc đơn "
( )
".Ví dụ:
fields=advertisers(advertiserId,generalConfig/domainUrl)
chỉ trả về mã nhận dạng nhà quảng cáo và URL miền cho mỗi phần tử trong nhà quảng cáo. Bạn cũng có thể chỉ định một trường phụ, nơifields=advertisers(advertiserId)
tương đương vớifields=advertisers/advertiserId
Ví dụ khác về cách sử dụng thông số trường
Các ví dụ dưới đây bao gồm nội dung mô tả về cách giá trị thông số fields
ảnh hưởng đến phản hồi.
- Xác định những trường mà bạn muốn được trả về hoặc chọn trường.
Giá trị tham số yêu cầu
fields
là một danh sách các trường được phân tách bằng dấu phẩy và mỗi trường được chỉ định tương ứng với gốc của phản hồi. Do đó, nếu bạn đang thực hiện thao táclist
, phản hồi là một tập hợp và thường bao gồm một mảng tài nguyên. Nếu bạn đang thực hiện một thao tác trả về một tài nguyên duy nhất, các trường sẽ được chỉ định tương ứng với tài nguyên đó nguồn. Nếu trường bạn chọn là (hoặc là một phần của) một mảng, máy chủ sẽ trả về phần đã chọn của tất cả các phần tử trong mảng.Sau đây là một số ví dụ ở cấp bộ sưu tập:
Ví dụ: Hiệu quả advertisers
Trả về tất cả phần tử trong Mảng advertisers
, bao gồm tất cả các trường trong mỗi phần tử, nhưng không có trường nào khác.advertisers,nextPageToken
Trả về cả nextPageToken
và tất cả các phần tử trong Mảngadvertisers
.advertisers/advertiserId
Chỉ trả về advertiserId
cho tất cả các phần tử trong Mảngadvertisers
.
Bất cứ khi nào một trường được lồng được trả về, phản hồi bao gồm các đối tượng mẹ đi kèm. Các trường mẹ không bao gồm bất kỳ trường con nào khác, trừ trường hợp họ cũng được chọn một cách rõ ràng.advertisers/generalConfig/domainUrl
Trả về trường domainUrl
cho đối tượnggeneralConfig
, được lồng trong Mảngadvertisers
.Dưới đây là một số ví dụ ở cấp tài nguyên:
Ví dụ: Hiệu quả advertiserId
Trả về trường advertiserId
của tài nguyên được yêu cầu.generalConfig/domainUrl
Trả về trường domainUrl
cho đối tượnggeneralConfig
trong tài nguyên được yêu cầu.- Chỉ yêu cầu các phần của những trường cụ thể bằng cách sử dụng lựa chọn phụ.
Theo mặc định, nếu yêu cầu của bạn chỉ định các trường cụ thể, máy chủ sẽ trả về toàn bộ các đối tượng hoặc phần tử mảng. Bạn có thể chỉ định một câu trả lời chỉ bao gồm một số trường phụ nhất định. Bạn thực hiện việc này bằng cách sử dụng "
( )
" như trong ví dụ dưới đây.Ví dụ: Hiệu quả advertisers(advertiserId,generalConfig/domainUrl)
Chỉ trả về giá trị của advertiserId
và GeneralConfigdomainUrl
cho mỗi phần tử trongadvertisers
.
Xử lý phản hồi một phần
Sau khi máy chủ xử lý yêu cầu hợp lệ bao gồm truy vấn fields
thì nó sẽ gửi lại mã trạng thái HTTP 200 OK
cùng với yêu cầu
. Nếu tham số truy vấn fields
có lỗi hoặc không hợp lệ, tham số
máy chủ trả về mã trạng thái HTTP 400 Bad Request
kèm theo một lỗi
cho bạn biết lỗi trong việc chọn trường (ví dụ:
"Invalid field selection a/b"
).