Skip to main content

Helper library for easier creation of Google services.

Project description

Python Library for helping to create Python services from Google APIs

Something I have to do a lot is create connections to Google Service endpoints. This generally requires a fair amount of boiler-plate code that io just copied and pasted from other locations. Also any time a new service is needed, I need to find that specific implementation of the service builder and add the new endpoint.

Obviously this can lead to potential errors and if a bug is found, I have to remember where I created these services and fix it in many projects.

This has led me to create a small helper library to make the process easier. Included in the library is a complete and updated (at time of publishing) list of all the Google APIs along with their versions and endpoints as Enums ready for use.

Usage

service_builder.build_service() needs two mandatory pieces of information:

Parameter Description
key The credentials to use to authenticate the user to the service it has to create
service The Google API endpoint it is trying to connect to.

key

These can be supplied in one of 4 ways.

  1. A valid google.oauth2.Credentials object, created and passed to the service builder.
  2. An str which is the name of a local file containing the json representation of an OAuth credentials object.
  3. A Mapping object which is a json keyfile dict
  4. An OAuthKey object from this package, which is a dataclass object comprising of the minimum fields necessary to perform the OAuth connection.

service

This is an Enum in the service_framework.service module, which defines the Google service you're planning to connect to. All of these services are dynamically built, but their names match the Google-defined name.

Example

from service_framework.services import Service
from service_framework import service_builder

key = service_builder.OAuthKey(
   access_token="<YOUR ACCESS TOKEN>",
   refresh_token="<YOUR REFRESH TOKEN>",
   token_uri="https://oauth2.googleapis.com/token",
   client_id="<YOUR CLIENT ID>",
   client_secret="<YOUR CLIENT SECRET>"
)

service = service_builder.build_service(service=Service.GMAIL, key=key)

Here, we are creating the key as an OAuthKey object as we have clearly got the tokens and client_[id|secret] from elsewhere. Creating the service is then as simple as invoking the service_builder.build_service method which will return you a service you can use.

Other parameters

service_builder.build_service() can also take 2 other optional parameters.

Parameter Description
api_key Some APIs require an API key as well as the OAuth credentials
extra_scopes Any extra OAUth scopes required for the operation

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

python-service-builder-1.0.0.tar.gz (10.5 kB view details)

Uploaded Source

Built Distribution

python_service_builder-1.0.0-py3-none-any.whl (13.5 kB view details)

Uploaded Python 3

File details

Details for the file python-service-builder-1.0.0.tar.gz.

File metadata

File hashes

Hashes for python-service-builder-1.0.0.tar.gz
Algorithm Hash digest
SHA256 ad5ea52255f3b81cf0b7b775c2f585df187c2fa0fac752521acd49a2c84e0d2e
MD5 56ee702a5e9976feec1836509ae1c4ed
BLAKE2b-256 7ffd6bb78ec7238d769b5713f1120e07edfe53ef37ac677281d46d75578c09d2

See more details on using hashes here.

File details

Details for the file python_service_builder-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for python_service_builder-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 251ae23968d3728298afa4925a5818dfea8e5959e71acf194423b01dcd2e241d
MD5 40532636db862575957cc3d4f3d5d398
BLAKE2b-256 2b526ec02db29638f70a4a0bbc16103bab0db2b8edc248e5d98b9911e7fe7b59

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page