Το zinn-sdk είναι το επίσημο Python πρόγραμμα-πελάτης μας για το Zinn Digital® API, το οποίο έχει δημοσιευτεί στο PyPI και εισάγεται ως zinn_sdk. Δημιουργείται από την ίδια προδιαγραφή OpenAPI από την οποία έχει κατασκευαστεί το API, κάθε λειτουργία διαθέτει σύγχρονες παραλλαγές και παραλλαγές asyncio, και δημοσιεύεται αυτόματα μια νέα έκδοση κάθε φορά που αλλάζει η προδιαγραφή. Αυτός ο οδηγός το εγκαθιστά, πραγματοποιεί τον έλεγχο ταυτότητάς του και εκτελεί τις πρώτες σας κλήσεις.
Εγκατάσταση
pip install zinn-sdk
Απαιτείται Python 3.11 ή νεότερη έκδοση και διαθέτει άδεια χρήσης MIT.
Δημιουργία κλειδιού API
Ανοίξτε τη σελίδα Κλειδιά API του πίνακα ελέγχου σας (app.zinndigital.com/api-keys) και πατήστε Δημιουργία κλειδιού. Δώστε ένα όνομα στο κλειδί και μόνο τα δικαιώματα που χρειάζεται ο κώδικάς σας — για παράδειγμα sites.view για την προβολή λίστας ιστοτόπων. Το κλειδί εμφανίζεται μόνο μία φορά· αποθηκεύστε το σε μια μεταβλητή περιβάλλοντος ή στον χώρο αποθήκευσης μυστικών σας, ποτέ στον πηγαίο κώδικα. Μπορείτε να ανακαλέσετε ένα κλειδί ανά πάσα στιγμή στην ίδια σελίδα.
Τα δημόσια τελικά σημεία καταλόγου, όπως οι περιοχές και τα πακέτα φιλοξενίας, δεν χρειάζονται καθόλου κλειδί.
Οι πρώτες σας κλήσεις
import os
from zinn_sdk import AuthenticatedClient, Client
from zinn_sdk.api.catalog import list_public_hosting_regions
from zinn_sdk.api.hosting import list_sites
# Public catalogue endpoints need no key.
public = Client(base_url="https://api.zinndigital.com")
regions = list_public_hosting_regions.sync(client=public)
print([region.slug for region in regions.data])
# Everything else uses a per-organisation API key.
api = AuthenticatedClient(base_url="https://api.zinndigital.com", token=os.environ["ZINN_API_KEY"])
page = list_sites.sync(client=api, limit=5)
for site in page.data:
print(site.name, site.status)
Εύρεση μιας λειτουργίας
Οι λειτουργίες ομαδοποιούνται ανά περιοχή API στην ενότητα zinn_sdk.api και ονομάζονται σύμφωνα με το αναγνωριστικό λειτουργίας τους σε snake case. Η λίστα ιστότοπων είναι η zinn_sdk.api.hosting.list_sites· οι τομείς και το DNS βρίσκονται στο zinn_sdk.api.domains· η τιμολόγηση στο zinn_sdk.api.billing. Η τεκμηρίωση του API εμφανίζει το αναγνωριστικό κάθε λειτουργίας.
Σύγχρονη, ασύγχρονη και πλήρης απόκριση
Κάθε λειτουργική ενότητα διαθέτει τέσσερις συναρτήσεις:
- Η
sync(...) επιστρέφει το αναλυμένο μοντέλο ή None σε περίπτωση μη αναμενόμενης κατάστασης.
- Η
sync_detailed(...) επιστρέφει ένα Response με status_code, headers και parsed.
- Οι
asyncio(...) και asyncio_detailed(...) είναι ίδιες, αλλά υποστηρίζουν await (awaitable).
import asyncio
from zinn_sdk.api.hosting import list_sites
async def main() -> None:
response = await list_sites.asyncio_detailed(client=api, limit=5)
print(response.status_code, len(response.parsed.data))
asyncio.run(main())
Χρησιμοποιήστε τις παραλλαγές _detailed όταν χρειάζεται να διακρίνετε ένα 403 (το κλειδί στερείται άδειας) από ένα 404.
Πού να πάτε στη συνέχεια
- Ο οδηγός στον ιστότοπό μας: zinndigital.com/developers/sdk-python
- Κάθε τελικό σημείο, οι παράμετροί του και η άδειά του: zinndigital.com/developers/api
- Το πακέτο στο PyPI: pypi.org/project/zinn-sdk