애플리케이션이 수행하는 각 HTTP 연결에서 일정량의 오버헤드가 발생합니다. 이 라이브러리는 일괄 처리를 지원하며 애플리케이션이 여러 API 호출을 단일 HTTP 요청에 넣을 수 있도록 합니다. 다음과 같은 경우에 일괄 처리를 사용할 수 있습니다.
- 실행할 작은 요청이 여러 개 있고 HTTP 요청 오버헤드를 최소화하려고 합니다.
- 애플리케이션이 오프라인 상태에서 사용자가 데이터를 변경했기 때문에 애플리케이션에서 많은 업데이트와 삭제를 전송하여 로컬 데이터와 서버를 동기화해야 합니다.
참고: 일괄 요청 하나에 호출 수는 1,000개로 제한됩니다. 이보다 많은 호출이 필요하면 여러 개의 일괄 요청을 사용해야 합니다.
참고: 미디어 업로드 객체를 생성할 수 있습니다.
세부정보
BatchRequest
객체를 인스턴스화한 다음 실행하려는 각 요청에 대해 Queue
메서드를 호출하여 일괄 요청을 만듭니다.
각 요청에서 애플리케이션이
해당 요청에 대한 응답을 반환합니다.
콜백 함수의 인수는 다음과 같습니다.
- 콘텐츠
- 콘텐츠 응답 또는 요청이 실패한 경우
null
입니다. - 오류
- 오류 또는 요청이 성공한 경우
null
입니다. - 색인
- 개별 요청의 색인입니다.
- 메시지
- 모든 헤더와 콘텐츠가 포함된 전체 HTTP 메시지입니다. 를 통해 개인정보처리방침을 정의할 수 있습니다.
ExecuteAsync
메서드를 사용하여 요청합니다.
다음 코드 스니펫에서는 두 개의 API 요청이 단일 HTTP 요청으로 일괄 처리되고 각 API 요청에 콜백이 제공됩니다.
UserCredential credential; using (var stream = new FileStream("client_secrets.json", FileMode.Open, FileAccess.Read)) { credential = await GoogleWebAuthorizationBroker.AuthorizeAsync( GoogleClientSecrets.Load(stream).Secrets, new[] { CalendarService.Scope.Calendar }, "user", CancellationToken.None, new FileDataStore("Calendar.Sample.Store")); } // Create the service. var service = new CalendarService(new BaseClientService.Initializer() { HttpClientInitializer = credential, ApplicationName = "Google Calendar API Sample", }); // Create a batch request. var request = new BatchRequest(service); request.Queue<CalendarList>(service.CalendarList.List(), (content, error, i, message) => { // Put your callback code here. }); request.Queue<Event>(service.Events.Insert( new Event { Summary = "Learn how to execute a batch request", Start = new EventDateTime() { DateTime = new DateTime(2014, 1, 1, 10, 0, 0) }, End = new EventDateTime() { DateTime = new DateTime(2014, 1, 1, 12, 0, 0) } }, "YOUR_CALENDAR_ID_HERE"), (content, error, i, message) => { // Put your callback code here. }); // You can add more Queue calls here. // Execute the batch request, which includes the 2 requests above. await request.ExecuteAsync();