Apple CloudKit server-to-server support for the requests Python library.
Project description
This project provides an authentication handler for Apple’s CloudKit server-to-server API for the requests Python library.
Installation
requests-cloudkit is available for download through the Python Package Index (PyPi). You can install it right away using pip or easy_install.
pip install requests-cloudkit
Usage
requests-cloudkit provides an authentication handler that can be passed directly to the requests library to authenticate requests to the CloudKit API. Before working with the CloudKit server-to-server API, you’ll first need to follow Apple’s instructions to generate a certificate and a server-to-server key (see Accessing CloudKit Using a Server-to-Server Key).
Once you have these values, just plug them into a CloudKitAuth object, which you can use with requests to interface with CloudKit. E.g.:
>>> import requests
>>> from requests_cloudkit import CloudKitAuth
>>> auth = CloudKitAuth(key_id=YOUR_KEY_ID, key_file_name=YOUR_PRIVATE_KEY_PATH)
>>> requests.get("https://api.apple-cloudkit.com/database/[version]/[container]/[environment]/public/zones/list", auth=auth)
Usage Requests-CloudKit with RestMapper
requests-cloudkit can also be used with RestMapper to integrate directly with the CloudKit API.
>>> CloudKit = restmapper.RestMapper("https://api.apple-cloudkit.com/database/[version]/[container]/[environment]/")
Instantiate a cloudkit instance using your CloudKit server-to-server key ID and provide the path to the private key file.
>>> cloudkit = CloudKit(auth=CloudKitAuth(key_id=YOUR_KEY_ID, key_file_name=YOUR_KEY_FILE))
Now, you can start making requests to the CloudKit API using a nice attribute syntax.
>>> response = cloudkit.public.zones.list()
The above will hit https://api.apple-cloudkit.com/database/[version]/[container]/[environment]/public/zones/list.
If you want to pass in body data for a POST, provide a single argument to the call to the API, and specify “POST” as the first attribute. I.e.
>>> cloudkit.POST.my.request(data)
For the full list of CloudKit Server-to-Server API capabilities, reference Apple’s developer documentation.
Support
If you like this library, or need help implementing it, just send us an email: hi@lionheartsw.com.
License
Apache License, Version 2.0. See LICENSE for details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.