일괄 요청 전송

애플리케이션에서 만드는 각 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();