Për zhvilluesit

Pritje që mund ta drejtoni përmes kodit

Zinn Digital® është një platformë API-first. E njëjta API e motorit që fuqizon panelin tonë të kontrollit është ajo që merrni ju — me versione, spec-first dhe 100% e dokumentuar në kohën e ndërtimit, me SDK të gjeneruara, një CLI, një ofrues Terraform, webhook të nënshkruar dhe një server MCP mbi të. Çfarëdo që të përdorni për të punuar — një terminal, një pipeline, një skedar gjendjeje ose një agjent AI — platforma i përgjigjet asaj.

Një pikë fundore e API-së që dërgon ngjarje të nënshkruara te disa dëgjues të regjistruar.
  • 700,000+faqe të hostuara në mbarë botën
  • 1Specifikimi OpenAPI nga i cili gjenerohet çdo mjet
  • 4SDK-të e klientit — TypeScript, Python, PHP, Go
  • OAuth 2.1qasje me fushëveprim të kufizuar dhe e revokueshme e agjentit të AI-së

Një API e vetme. Çdo sipërfaqe mbështetet mbi të.

Shumica e ofruesve të hostingut i shtojnë një API panelit të kontrollit më pas, dhe kjo bie në sy — gjysma e veçorive të panelit nuk përfshihen kurrë. Ne e ndërtuam në mënyrën e kundërt. Paneli kryesor, konsola e administratorit, CLI, ofruesi i Terraform, serveri MCP dhe integrimet tuaja konsumojnë të gjitha të njëjtën API motori. Nëse mund ta bëni në panel, mund ta bëni edhe në kod.

Së pari specifikimi, jo i dokumentuar më vonë

Specifikimi OpenAPI është burimi i së vërtetës dhe asnjë pikë fundore nuk publikohet nëse nuk është në specifikim. Ky rregull i vetëm është ai që e bën API-në publike plotësisht të dokumentuar në kohën e ndërtimit dhe jo me kalimin e kohës — nuk ka asnjë kënd të padokumentuar, sepse një pikë fundore e padokumentuar nuk mund të ekzistojë.

E gjeneruar, nuk mirëmbahet kurrë manualisht

Dokumentacioni ndërveprues i referencës, katër SDK-të e klientit, pjesa më e madhe e CLI-së dhe struktura mbështetëse e ofruesit të Terraform-it gjenerohen të gjitha nga ai specifikim i vetëm. Një burim, shumë artefakte, gjithmonë në sinkronizim — nuk ju duhet kurrë të ndiqni një dokument që është shmangur nga zbatimi.

I versionuar me një politikë amortizimi

Pikat përfundimtare ndodhen nën /v1 me një politikë të publikuar mbi tërheqjen nga përdorimi dhe një regjistër ndryshimesh. Ju njoftoheni me shkrim përpara se diçka të ndryshojë, në vend që ta zbuloni atë nga një dështim në ndërtim.

E testuar sipas kontratës në CI

Testet e kontratës zbatim-kundrejt-specifikimit dhe analizimi OpenAPI ekzekutohen në çdo ndryshim. Mospërputhja midis kodit dhe kontratës dështon ndërtimin — kështu që specifikimi nga i cili ju gjeneroni klientin tuaj është specifikimi që serveri respekton realisht.

Autentifikimi, përcaktimi i fushëveprimit dhe sfidat e papritura në shkallëzim

Dy mënyra hyrjeje, një parim uniform pas tyre. Cilëndo që të përdorni, zbatohen të njëjtat kontrolle lejimesh dhe i njëjti izolim në nivel të bazës së të dhënave.

Çelësat API, për organizatë

Çelësat kanë formën zdk_<mode>_<prefix>_<secret>. Ruhet vetëm një hash SHA-256 i sekretit — ne nuk mund t'ju shfaqim përsëri një çelës pas lëshimit, dhe asnjë person që ka qasje në bazën tonë të të dhënave nuk mund ta bëjë këtë. Çelësat përmbajnë fushëveprime, mund të revokohen dhe lëshohen për çdo organizatë dhe jo për çdo person.

Modalitetet e drejtpërdrejta dhe të testimit, të mbajtura të ndara

Çelësat sandbox janë të ndarë nga çelësat e prodhimit dhe funksionojnë në modalitetin sandbox: pa faturim real, pa provizionim real. Testet tuaja të integrimit mund ta mbingarkojnë API-n pa shpenzuar para ose pa krijuar serverë.

OIDC për njerëzit

Sesionet e përdoruesve vërtetohen me JWT të lëshuara nga Keycloak, të verifikuara kundrejt çelësit publik të realm-it, dhe zgjidhen në të njëjtin objekt Principal si një çelës API. Pikat përfundimtare kushtëzohen nga çelësa lejesash të hollësishme si sites.create ose apikeys.manage, të kontrolluara për çdo organizatë — një leje në një organizatë nuk jep asnjë qasje në një organizatë të veçantë dhe të palidhur, megjithëse zbatohet për organizatat e ndodhura nën të.

Siguria në nivel rreshti poshtë

Çdo kërkesë e qiramarrësit ekzekutohet brenda një transaksioni me fushëveprimin e organizatës Postgres të caktuar nga kryesori, kështu që izolimi zbatohet nga baza e të dhënave, dhe jo nga një filtër ORM që dikush mund ta harrojë. Filtri i queryset është ende aty si një mbrojtje e thelluar.

E ndërtuar për makina, jo thjesht për demonstrime

Një API është e lehtë të duket bukur në një README dhe e vështirë të sillet siç duhet nën trafikun real. Këto janë pjesët për të cilat jemi munduar shumë, sepse janë pikërisht pjesët që prishin integrimet në tre të mëngjesit.

Një detaj që vlen të theksohet, sepse përcakton mënyrën se si funksionon puna në masë: një gabim 409 për domen të dyfishtë i përgjigjet pyetjes "a është ky emër hosti i hostuar këtu?" për çdo qiramarrës, gjë që përbën një orakull regjistrimi dhe një rrezik të vërtetë çanonimizimi ndaj Footprint-Free. Kufizimi i krijimit të faqeve do të kishte qenë një zgjidhje përtace dhe do ta kishte dëmtuar tërësisht produktin e provizionimit në masë. Në vend të kësaj, buxhetohen vetëm përpjekjet e refuzuara për domene të dyfishta, për çdo titullar. Krijimet e suksesshme nuk llogariten kurrë kundrejt tij — kështu që ju mund të proviziononi në masë gjatë gjithë ditës, ndërsa tentativat e zbulimit ndërpriten pothuajse menjëherë.

  • Një strukturë e njëtrajtshme gabimi në çdo dështim: një kod, një mesazh i qartë për njeriun, detaje opsionale në nivel fushe dhe një request_id që mund t'ia referoni mbështetjes teknike. Gabimet e vlefshmërisë kthejnë 422 duke përmendur fushat problematike.
  • Çelësat e idempotencës në POST, me regjistrimin e përsëritjes të shkruar gjatë kryerjes (commit) dhe jo inline — kështu që një ripërpjekje nuk mund të ripërsërisë kurrë një 201 të ruajtur në memorien e përkohshme që emërton një rresht i cili nuk u krye kurrë. Një kërkesë e dështuar liron menjëherë bllokimin e saj aktiv, kështu që një 422 nuk e bllokon ripërpjekjen tuaj të korrigjuar.
  • Faqëzimi me kursor si set çelësash mbi UUIDv7 — i qëndrueshëm gjatë shkrimeve të njëkohshme, pa zhvendosje të faqeve kur rreshtat futen në mes të skanimit.
  • RateLimit-Remaining në përgjigje, në mënyrë që një klient i gjeneruar të mund të ngadalësojë me zgjuarsi në vend që të hamendësojë.
  • Burimet jashtë fushëveprimit kthejnë 404 në vend të 403 — një 403 do të konfirmonte ekzistencën e burimit. Filtrimi sipas një organizate jashtë fushëveprimit tuaj kthen një faqe bosh për të njëjtën arsye.
  • Krijimi i faqes është regjistrim, jo provizionim: POST /v1/sites kthen 201 me status pending dhe nuk bllokohet kurrë gjatë krijimit. Ngjarja shkruhet në transactional outbox në të njëjtin transaksion si rreshti, kështu që një faqe ekziston nëse dhe vetëm nëse kërkesa për provizionimin e saj është e garantuar.

SDK-të, një CLI dhe një ofrues Terraform

Tre konsumatorë të të njëjtit specifikim, për tri mënyra të ndryshme pune.

SDK-të e klientit

Gjeneruar për TypeScript, Python, PHP dhe Go, duke ndjekur specifikimin në mënyrë që një pikë e re fundore të mbërrijë në gjuhën tuaj pa pritur një mbështjellës të shkruar me dorë.

Zinnector®, CLI

Krijoni strukturën e një faqeje WordPress, ekzekutojeni atë lokalisht duke pasur të instaluar vetëm Node, dhe vendoseni në punë. Zinnector® bën një kontroll paraprak të projektit tuaj përpara hapësirës ku do ta vendosni — versioni i PHP, disku, numri i skedarëve — dhe ju paralajmëron përpara se të kryeni dërgimin dhe jo më pas. Ai gjithashtu identifikohet, rendit faqet, bën publikimin, menaxhon domenet dhe DNS, lexon shërbimet e postës elektronike, krijon kopje rezervë, ekzekuton WP-CLI të autorizuara, ndjek regjistrat në kohë reale dhe ekzekuton veprime në masë. Falas, i licencuar me MIT dhe i ndërtuar mbi këtë API publik.

Ofertuesi i Terraform

Menaxhoni faqet, domenet, regjistrimet DNS, kutitë postare dhe planet si infrastrukturë si kod. terraform apply konfiguroni pritjen (hosting), dhe mjediset tuaja bëhen të ripërsëritshme dhe të rishikueshme në vend të një sekuence klikimesh që askush nuk i mbajti shënim.

Referencë interaktive

Dokumentacion i gjeneruar që mund ta lexoni dhe thërrisni nga shfletuesi, duke përshkruar saktësisht pikat përfundimtare që zbaton serveri — sepse të dy vijnë nga i njëjti specifikim.

Uebhuke që mbijetojnë edhe kur pika juaj fundore bie

Prapa platformës qëndron një shtyllë e qëndrueshme ngjarjesh: çdo ndryshim gjendjeje shkruan një ngjarje në një outbox transaksional në Postgres, në mënyrë atomike me ndryshimin e bazës së të dhënave, dhe një transmetues e publikon atë në NATS JetStream. Ngjarjet janë të tipizuara dhe të versionuara — site.deployed, order.paid, invoice.overdue, backup.completed, abuse.flagged, trial.ending dhe të tjerat.

Abonohuni në temat që ju interesojnë

Regjistroni një pikë fundore si një WebhookSubscription dhe zgjidhni llojet e ngjarjeve që ajo merr. Një rrjedhë e vetme ushqen njësoj njoftimet, analizat, automatizimet dhe integrimin tuaj — ju po konsumoni të njëjtat ngjarje që konsumojmë edhe ne.

Nënshkruar me HMAC

Çdo dërgesë është e nënshkruar me HMAC, në mënyrë që të mund të verifikoni se vjen nga ne përpara se të veproni mbi të.

U riprovua me vonesë dhe u regjistrua

Dërgesat e dështuara riprovohen me një rritje graduale të kohës dhe çdo përpjekje regjistrohet si një WebhookDelivery. Ju mund t'i inspektoni dhe t'i ridërgoni dërgesat nga paneli në vend që t'i dërgoni email mbështetjes për të pyetur se çfarë kemi dërguar.

Të paktën një herë, prandaj hiqni dublikatat sipas id-së

Kanali i të dhënave është qëllimisht të paktën një herë (at-least-once) në vend që të pretendojë të jetë saktësisht një herë (exactly-once). Një stafetë që ndërpritet gjatë publikimit, i skadon qiraja e kërkesës dhe ngjarjet e saj ripublikohen. Hiqni dublikatat sipas envelope id dhe konsumatori juaj do të jetë i saktë që në ndërtim.

Hedhja e kodit në faqe

Një API është vetëm gjysma e historisë së një zhvilluesi. Gjysma tjetër është hedhja në prodhim.

  • Lidhni GitHub, GitLab ose Bitbucket përmes OAuth, me çelësat e vendosjes të ruajtur në depon e kredencialeve — jo në një skedar konfigurimi.
  • Push aktivizon një linjë ndërtimi dhe shpërndarjeje, me hartëzimin nga dega në mjedis (main në production, staging në staging) dhe hapat e ndërtimit për çdo grup për composer dhe npm.
  • Kthehuni te një version i mëparshëm kur një vendosje dështon.
  • Klonim testues dhe hedhje e menjëhershme në funksionim, në mënyrë që një ndryshim të provohet në kushte reale përpara se të arrijë te vizitorët.
  • SFTP për çdo faqe nën izolimin e CageFS, në mënyrë që secili qiramarrës të shohë vetëm skedarët e tij, plus një shell SSH të kufizuar (jailed) në platformën e përbashkët.
  • wp-cli nga terminali i panelit dhe nëpërmjet SSH-së.
  • VS Code në shfletues nëpërmjet code-server — një redaktues i plotë me git, duke redaktuar drejtpërdrejt skedarët e faqes.
  • Versioni i PHP-së për çdo faqe, cilësime të modifikueshme të PHP-së, shtesa për çdo faqe, variabla mjedisi dhe cron i vërtetë krahas WP-cron.

Katër mënyra për të punuar në një faqe

API-ja është një derë. Këto janë katër të tjerat, dhe secila prej tyre përfshihet në plan në vend që të shitet si një nivel për zhvilluesit.

Redaktuesi i uebit

VS Code në shfletues, i hapur nga faqja e sajtit në panelin e kontrollit, duke redaktuar skedarët realë të atij sajti me git të integruar dhe të gjithë redaktuesin brenda të njëjtit izolim CageFS si qasja juaj SFTP. Ai redakton sajtin LIVE — nuk ka asnjë kopje testuese në mes, kështu që një skedar që ruani bëhet publik në momentin që shkruhet, megjithëse një skedar statik mund të vazhdojë të shërbehet nga memoria e fshehtë e CDN-së deri në katër orë.

Zinnector®, CLI

Falas, me licencë MIT dhe i ndërtuar mbi këtë API publik. Krijoni strukturën e një faqeje WordPress, ekzekutojeni në kompjuterin tuaj, verifikojeni paraprakisht kundrejt hapësirës ku do ta vendosni — versioni i PHP, disku, numri i skedarëve — dhe vendoseni. Kërkon Node 24 ose më të ri.

Serveri MCP

Një katalog i vetëm mjetesh, në mënyrë që klienti AI që përdorni tashmë të mund të punojë në faqet tuaja nëpërmjet të njëjtit API dhe të njëjtave leje që përdor paneli i kontrollit. I njëjti server me të cilin lidhet klienti juaj është ai i lidhur me redaktuesin e uebit. Vetëm për lexim derisa të vendosni ndryshe.

Qasje zhvilluesi për çdo faqe

Puna e klientit nuk ka nevojë për fjalëkalimin tuaj. Ftoni dikë me anë të adresës së emailit dhe ai përfiton saktësisht një faqe: ata identifikohen me profilin e tyre, me një rol shikuesi, redaktori ose menaxheri, dhe çdo faqe tjetër përgjigjet me 404 përpara se të ekzekutohet ndonjë procesues — një politikë sigurie në nivel rreshti në Postgres dhe një mbrojtje në nivel kërkese, jo një kontroll i vetëm. Pronari i llogarisë e jep dhe e heq atë me një klikim, me efekt në kërkesën e tyre të radhës.

Dhe i njëjti API që agjenti juaj i inteligjencës artificiale mund të përdorë

Ne e ofrojmë platformën si një server të hostuar MCP: një përshtatës i thjeshtë protokolli mbi API-në e motorit që ripërdor të njëjtin katalog veprimesh, RBAC dhe gjurmën e auditimit. Lidhni një herë Claude Code, Cursor, ChatGPT, Claude Desktop ose çdo klient tjetër të aftë për MCP, dhe çdo veçori që ne i shtojmë API-së bëhet automatikisht e disponueshme për të.

Agjenti merr tri gjëra: Tools (të njëjtat pika fundore të API-së, pa logjikë paralele që mund të shmanget), Resources (gjendja e faqes vetëm për lexim, konfigurimi, regjistrat e fundit, metrikat, koha e funksionimit dhe artikujt e bazës së njohurive, në mënyrë që të diagnostikojë me të dhëna reale përpara se të veprojë) dhe Prompts (shabllone të publikuara të rrjedhës së punës si "diagnose this site" ose "prepare a migration").

Siguria funksionon njëlloj si autentikimi: OAuth 2.1, kode aksesi të lidhura me organizatën tuaj dhe leje RBAC me siguri të zbatuar në nivel rreshti, me fushëveprim të kufizuar dhe të revokueshme për çdo mjet, si dhe sandbox i ndarë nga prodhimi. Veprimet shkatërruese — fshirja, pezullimi, faturimi, shpenzimet e mëdha — kërkojnë konfirmim të qartë ose një politikë miratimi njerëzor. Kufijtë e tarifave dhe tavanet e shpenzimeve kufizojnë veprimet me pagesë të nxitura nga inteligjenca artificiale, dhe çdo thirrje MCP regjistrohet në regjistrin e auditimit së bashku me identitetin, mjetin, argumentet dhe rezultatin.

Ne mbështesim protokollin në vend që të integrojmë çdo aplikacion një nga një, gjë që do të thotë se zgjedhja juaj e mjeteve të inteligjencës artificiale mund të ndryshojë pa ndryshuar integrimi juaj i pritjes.

Pyetjet e shpeshta

A është API-ja publike e njëjta me atë që përdor paneli i kontrollit?

Po — është i njëjti API i motorit, i publikuar dhe i përforcuar. Paneli kryesor, paneli i administrimit, CLI, ofruesi i Terraform, serveri MCP dhe webhook-et janë të gjithë konsumues të së njëjtës ndërfaqe, prandaj API-ja nuk mbetet prapa panelit.

A mund të testoj një integrim pa shpenzuar para ose pa ndërtuar serverë realë?

Po. Çelësat e sandbox-it lëshohen veçmas çelësave të prodhimit dhe funksionojnë në modalitet testimi: pa faturim real dhe pa provizionim real. Drejtojeni CI-në tuaj drejt kredencialeve të sandbox-it dhe provoni me siguri ciklin e plotë të kërkesës dhe përgjigjes.

Si mund të parandaloj që një riprovim të krijojë dy kopje të një elementi?

Dërgoni një Idempotency-Key në kërkesën tuaj POST. Regjistrimi i riprodhimit shkruhet gjatë commit dhe jo inline, kështu që një riprovim nuk mund të riprodhojë kurrë një sukses të ruajtur në cache për një rresht që në të vërtetë nuk u krye me commit, dhe një kërkesë që dështon e liron menjëherë bllokimin e saj në mënyrë që riprovimi juaj i korrigjuar të mos mbahet peng. Dorëzimi i Webhook-ut është i konceptuar të jetë të paktën një herë (at-least-once) — bëni çduplikimin në anën tuaj sipas envelope id.

A mund t'i jap një çelësi API akses në të gjitha organizatat e klientëve të mi?

Jo sot. Çelësat API lëshohen për çdo organizatë, kështu që një integrim që përfshin disa organizata klientësh mban një çelës për secilën prej tyre. Lejet kontrollohen gjithashtu për çdo organizatë për përdoruesit kryesorë: mbajtja e sites.create në një organizatë nuk jep qasje në një organizatë të veçantë dhe të palidhur, megjithëse zbatohet për organizatat e vendosura nën të. Kjo është e qëllimshme — ajo kufizon një çelës të komprometuar brenda vetë organizatës së tij dhe nën-organizatave nën të, jo në të gjithë platformën.

Çfarë lejon në të vërtetë roli i integruar i Zhvilluesit?

Roli dev mbulon leximin e organizatës, menaxhimin e çelësave API, shikimin dhe krijimin e faqeve, rinisjen e tyre, pastrimin e memories së fshehur (cache), si dhe shikimin dhe përgjigjen ndaj kërkesave për mbështetje. Ai përjashton qëllimisht kontrollin e faturimit. Kini parasysh se lejet e shpërndarjes (deploy) dhe publikimit në mjedisin real (push-to-live) nuk janë pjesë e tij — nëse një anëtari të ekipit i nevojiten ato, caktoni një rol që i përmban ato në vend që të supozoni se Zhvilluesi është roli teknik më i gjerë.

Çfarë ndodh me uebhokët e mi nëse pika ime përfundimtare ndalon së funksionuari për një orë?

Dërgesat ripovohen me një rritje graduale të kohës së pritjes dhe çdo përpjekje regjistrohet si një WebhookDelivery që mund ta inspektoni. Në rrjedhën e sipërme, ngjarjet shkruhen në një kuti dalëse transaksionale brenda të njëjtit transaksion të bazës së të dhënave si vetë ndryshimi, kështu që asgjë nuk humbet ndërkohë që një konsumator është i padisponueshëm — një konsumator jofunksional mbetet prapa, por nuk e ndërpret kurrë prodhuesin, dhe ju mund t'i riprodhoni dërgesat nga paneli sapo të jeni rikthyer.

Sa kushton të filloni të ndërtoni me të?

Fillo një provë 14-ditore pa kartë krediti të Footprint-Free Hosting — pa të dhëna pagese, deri në 5 faqe. Nivelet me pagesë të Footprint-Free fillojnë nga $6/muaj për PBN 5. Çdo plan përfshin një garanci rimbursimi prej 30 ditësh, migrime falas dhe pa kushtëzim nga ofruesi.

Lexoni specifikimin, më pas ndërtoni në bazë të tij

API i bazuar në specifikime, SDK të gjeneruara, një CLI, një ofrues Terraform, webhook të nënshkruar dhe një server MCP — në hosting-un që kemi ndërtuar për mbi 700,000 faqe në mbarë botën. Filloni me një provë 14-ditore pa kartë, pa të dhëna pagese.

Filloni falas

Shtojcat e WordPress me të cilat mund të punojë agjenti juaj i inteligjencës artificiale

Secili prej këtyre shtojcave e bën faqen tuaj të WordPress një server MCP, kështu që Claude, Cursor, VS Code dhe asistentët e tjerë të AI mund të bëjnë punë reale në të, të kyçur si ju dhe të kufizuar në atë që ju lejohet të bëni.

Të gjithë dokumentet e MCP dhe API për zhvilluesit →