Atenea_v10
Atenea_v10

Reputation: 107

How to prevent unnecessary G Suite API data consumption?

I am currently consuming data from the G Suite API.

An inconvenience I have found is that for some of the APIs the number of resources available might be quite large.

For instance, when I consume the Users:list API (https://www.googleapis.com/admin/directory/v1/users), given the number of resources and the maximum number of results per query I need to perform a significant number of queries. Find below an example JSON response:

 {
  "kind": "admin#directory#users",
  "etag": "\"WqpSTs-zelqnIvn63V............................/v3ENarMfXkTh9ijs3OVkQRoUSVU\"",
  "users": [
    {
      "kind": "admin#directory#user",
      "id": "7720745322191632224007",
      "etag": "\"WqpSTs-zelqnIvn63V........................PfcSmik3zEJwHAl1UbgSk\"",
      "primaryEmail": ...,
      ...
    },
    {
      "kind": "admin#directory#user",
      "id": "227945583287518253104",
      "etag": "\"WqpSTs-zelqnIvn63V..........-zY30eInIGOmLI\"",
      "primaryEmail": ...,
      ...
    },
    ...
    N-users
    ...
  ]
}

I am running this query several times a day.

Ideally I would only retrieve the resources that have changed and the new ones, excluding from the response the ones that have not changed.

Is it possible to do that? If so, how?

Thank you in advance for your answers.

Upvotes: 0

Views: 134

Answers (1)

Aerials
Aerials

Reputation: 4419

You could create custom attributes for your users, and then filter your requests using the query parameter according to your custom attribute.

Or define exactly what you mean by "changed" or "not changed" as the user properties will change on every login to update the last login attribute.

Update:

You can watch for changes on the list of users in your domain by supplying an address to receive notifications in a POST request to the watch endpoint:

https://www.googleapis.com/admin/directory/v1/users/watch


References:

Upvotes: 1

Related Questions