Some checks failed
App Prod-Parity E2E Dispatch / dispatch (push) Failing after 10s
CD Storybook UI / build (push) Failing after 3m25s
CD Storybook UI / dispatch (push) Has been skipped
CD deploy main / website-changed-files (push) Successful in 18m8s
CI Agent Skills / changed-files-check (push) Successful in 18m9s
CI Create App E2E minimal / changed-files-check (push) Successful in 24s
CI Create App / changed-files-check (push) Successful in 26s
CI Docs / changed-files-check (push) Successful in 26s
CI Emails / changed-files-check (push) Successful in 28s
CI Example App Hello World / changed-files-check (push) Successful in 23s
CI Front / changed-files-check (push) Has been skipped
CI Example App Postcard / changed-files-check (push) Successful in 27s
CI UI / changed-files-check (push) Has been skipped
CI Utils Test / changed-files-check (push) Successful in 45s
CI Twenty Apps / discover (push) Successful in 1m3s
CD deploy main / deploy-main (push) Failing after 3s
CI Agent Skills / agent-skills-validate (push) Has been skipped
CI Create App / create-app-test (lint) (push) Has been skipped
CI Emails / emails-test (push) Has been skipped
CI Front / front-task (lingui:compile) (push) Has been skipped
CI Front / front-task (lint) (push) Has been skipped
CI Example App Postcard / example-app-postcard (push) Has been skipped
CI UI / ui-task (lint) (push) Has been skipped
CI UI / ui-task (pack-size) (push) Has been skipped
CI UI / ui-task (size) (push) Has been skipped
CI UI / ui-task (test) (push) Has been skipped
CI UI / ui-task (typecheck) (push) Has been skipped
CI Utils Test / utils-test (push) Has been skipped
CI Twenty Apps / ${{ matrix.app.name }} (push) Has been skipped
CI Emails / ci-emails-status-check (push) Successful in 2s
CI Example App Hello World / ci-example-app-hello-world-status-check (push) Successful in 2s
CI Example App Postcard / ci-example-app-postcard-status-check (push) Successful in 3s
CI UI / ui-sb-test (push) Has been skipped
CI Utils Test / ci-utils-test-status-check (push) Successful in 2s
CI Twenty Apps / ci-twenty-apps-status-check (push) Successful in 2s
CI UI / ci-ui-status-check (push) Successful in 2s
CI Desktop / desktop (push) Failing after 1m8s
Push docs to Crowdin / Push documentation to Crowdin (push) Failing after 55s
Push translations to Crowdin / Extract and upload translations (push) Failing after 5s
Push website translations to Crowdin / Extract and upload website translations (push) Failing after 5s
CI Create App / create-app-test (test) (push) Has been skipped
CI Create App / create-app-test (typecheck) (push) Has been skipped
CI Docs / docs-lint (push) Has been skipped
CI Example App Hello World / example-app-hello-world (push) Has been skipped
CI Front / front-task (lingui:extract) (push) Has been skipped
CI Front / front-task (test) (push) Has been skipped
CI Front / front-task (typecheck) (push) Has been skipped
CI UI / ui-sb-build (push) Failing after 1m32s
CI Twenty Apps / ${{ matrix.app.name }} (${{ matrix.server-source }}) (push) Has been skipped
CI Agent Skills / agent-skills-publish (push) Has been skipped
CI Create App / ci-create-app-status-check (push) Successful in 2s
CI Agent Skills / agent-skills-remote-source (push) Has been skipped
CI Create App E2E minimal / create-app-e2e-minimal (push) Has been cancelled
CI E2E Main / e2e-test (push) Has been cancelled
CI Front / front-sb-build (push) Has been cancelled
CI Front / front-build (push) Has been cancelled
CI Create App E2E minimal / ci-create-app-e2e-minimal-status-check (push) Has been cancelled
CI E2E Main / ci-e2e-main-status-check (push) Has been cancelled
CI E2E Main / notify-main-ci-failure (push) Has been cancelled
CI E2E Main / qa-scout-comment (push) Has been cancelled
CI Front / front-sb-test (push) Has been cancelled
CI Front / front-sb-screenshots (push) Has been cancelled
CI Front / ci-front-status-check (push) Has been cancelled
DPA Sub-Processor Sync / sync-subprocessors (push) Failing after 3s
AI Catalog Sync / sync-catalog (push) Failing after 2s
148 lines
5.7 KiB
Plaintext
148 lines
5.7 KiB
Plaintext
---
|
||
title: API'ler
|
||
description: CRM verilerinizi REST veya GraphQL kullanarak programatik olarak sorgulayın ve değiştirin.
|
||
---
|
||
|
||
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
|
||
|
||
Twenty, geliştirici dostu olacak şekilde tasarlanmıştır ve özel veri modelinize uyum sağlayan güçlü API'ler sunar. Farklı entegrasyon ihtiyaçlarını karşılamak üzere dört farklı API türü sunuyoruz.
|
||
|
||
## Öncelik Geliştiricide Yaklaşımı
|
||
|
||
Twenty, veri modeliniz için özel olarak API'ler oluşturur:
|
||
|
||
* **Uzun kimlik numaralarına gerek yok**: Uç noktalarda nesne ve alan adlarınızı doğrudan kullanın
|
||
* **Standart ve özel nesneler eşit şekilde ele alınır**: Özel nesneleriniz yerleşik olanlarla aynı API muamelesini görür.
|
||
* **Özel uç noktalar**: Her nesne ve alan kendi API uç noktasına sahiptir
|
||
* **Özel dokümantasyon**: Çalışma alanınızın veri modeli için özel olarak üretilmiştir.
|
||
|
||
<Note>
|
||
Bir API anahtarı oluşturduktan sonra kişiselleştirilmiş API dokümantasyonunuz **Ayarlar → API ve Webhook'lar** altında mevcuttur. Twenty, özel veri modelinize uyan API'ler oluşturduğundan, dokümantasyon çalışma alanınıza özeldir.
|
||
</Note>
|
||
|
||
## İki API Türü
|
||
|
||
### Temel API
|
||
|
||
`/rest/` veya `/graphql/` üzerinden erişilebilir.
|
||
|
||
Gerçek **kayıtlarınızla** (verilerin kendisiyle) çalışın:
|
||
|
||
* People, Companies, Opportunities vb. oluşturun, okuyun, güncelleyin, silin.
|
||
* Verileri sorgulayın ve filtreleyin
|
||
* Kayıt ilişkilerini yönetin
|
||
|
||
### Meta Veriler API
|
||
|
||
`/rest/metadata/` veya `/metadata/` üzerinden erişilebilir.
|
||
|
||
**Çalışma alanınızı ve veri modelinizi** yönetin:
|
||
|
||
* Nesne ve alanlar oluşturun, değiştirin veya silin
|
||
* Çalışma alanı ayarlarını yapılandırın
|
||
* Nesneler arasındaki ilişkileri tanımlayın
|
||
|
||
## REST ve GraphQL
|
||
|
||
Hem Core hem de Metadata API'leri, REST ve GraphQL formatlarında mevcuttur:
|
||
|
||
| Biçim | Kullanılabilir İşlemler |
|
||
| ----------- | -------------------------------------------------------------------------------- |
|
||
| **REST** | CRUD, toplu işlemler, ekleme-güncelleme işlemleri |
|
||
| **GraphQL** | Aynısı + **toplu ekleme-güncelleme işlemleri**, tek bir çağrıda ilişki sorguları |
|
||
|
||
İhtiyaçlarınıza göre seçin — her iki format da aynı verilere erişir.
|
||
|
||
## API Uç Noktaları
|
||
|
||
| Ortam | Temel URL |
|
||
| ---------------------------- | ------------------------- |
|
||
| **Bulut** | `https://api.twenty.com/` |
|
||
| **Kendi Kendine Barındırma** | `https://{your-domain}/` |
|
||
|
||
## Kimlik Doğrulama
|
||
|
||
Her API isteği, başlıkta bir API anahtarı gerektirir:
|
||
|
||
```
|
||
Authorization: Bearer YOUR_API_KEY
|
||
```
|
||
|
||
### Bir API Anahtarı Oluştur
|
||
|
||
1. **Ayarlar → API ve Webhook'lar**'a gidin
|
||
2. **+ Anahtar oluştur**'a tıklayın
|
||
3. Alanı Yapılandır:
|
||
* **Ad**: Anahtar için açıklayıcı bir ad
|
||
* **Son Kullanma Tarihi**: Anahtarın ne zaman sona ereceği
|
||
4. **Kaydet**'e tıklayın
|
||
5. **Hemen kopyalayın** — anahtar yalnızca bir kez gösterilir
|
||
|
||
<VimeoEmbed videoId="928786722" title="API anahtarı oluşturma" />
|
||
|
||
<Warning>
|
||
API anahtarınız hassas verilere erişim sağlar. Güvenilmeyen hizmetlerle paylaşmayın. Tehlikeye girerse, onu hemen devre dışı bırakın ve yenisini oluşturun.
|
||
</Warning>
|
||
|
||
### Bir API Anahtarına Rol Atama
|
||
|
||
Daha iyi güvenlik için, erişimi sınırlamak amacıyla belirli bir rol atayın:
|
||
|
||
1. **Ayarlar → Üyeler → Roller** bölümüne gidin
|
||
2. Atamak istediğiniz role tıklayın
|
||
3. **Atama** sekmesini açın
|
||
4. **API Anahtarları** altında, **+ API anahtarına ata**'ya tıklayın
|
||
5. API anahtarını seçin
|
||
|
||
Anahtar, o rolün izinlerini devralacaktır. Ayrıntılar için [İzinler](/l/tr/user-guide/permissions-access/capabilities/permissions) bölümüne bakın.
|
||
|
||
### API Anahtarlarını Yönet
|
||
|
||
**Yeniden Oluştur**: Ayarlar → API ve Webhook'lar → Anahtara tıklayın → **Yeniden Oluştur**
|
||
|
||
**Sil**: Ayarlar → API ve Webhook'lar → Anahtara tıklayın → **Sil**
|
||
|
||
## API Oyun Alanı
|
||
|
||
Yerleşik oyun alanımız ile API'lerinizi doğrudan tarayıcıda test edin — hem **REST** hem de **GraphQL** için kullanılabilir.
|
||
|
||
### Oyun Alanına Erişin
|
||
|
||
1. **Ayarlar → API ve Webhook'lar**'a gidin
|
||
2. Bir API anahtarı oluşturun (gerekli)
|
||
3. Oyun alanını açmak için **REST API** veya **GraphQL API**'ye tıklayın
|
||
|
||
### Elde Edecekleriniz
|
||
|
||
* **Etkileşimli dokümantasyon**: Belirli veri modeliniz için oluşturulur
|
||
* **Canlı test**: Çalışma alanınıza karşı gerçek API çağrılarını gerçekleştirin
|
||
* **Şema gezgini**: Kullanılabilir nesnelere, alanlara ve ilişkilere göz atın
|
||
* **İstek oluşturucu**: Otomatik tamamlama ile sorgular oluşturun
|
||
|
||
Oyun alanı, özel nesnelerinizi ve alanlarınızı yansıtır, bu nedenle dokümantasyon çalışma alanınız için her zaman doğrudur.
|
||
|
||
## Toplu İşlemler
|
||
|
||
Hem REST hem de GraphQL, toplu işlemleri destekler:
|
||
|
||
* **Toplu boyut**: İstek başına 60 kayıt kadar
|
||
* **İşlemler**: Birden çok kaydı oluşturma, güncelleme, silme
|
||
|
||
**Yalnızca GraphQL Özellikleri:**
|
||
|
||
* **Toplu Ekleme-Güncelleme**: Tek bir çağrıda oluşturun veya güncelleyin
|
||
* Çoğul nesne adlarını kullanın (ör. `CreateCompany` yerine `CreateCompanies`)
|
||
|
||
## Hız Sınırları
|
||
|
||
Platform kararlılığını sağlamak için API istekleri kısıtlanır:
|
||
|
||
| Sınır | Değer |
|
||
| ---------------- | --------------------- |
|
||
| **İstekler** | Dakikada 100 çağrı |
|
||
| **Toplu boyutu** | Çağrı başına 60 kayıt |
|
||
|
||
<Tip>
|
||
Verimi en üst düzeye çıkarmak için toplu işlemleri kullanın — tekil istekler yapmak yerine tek bir API çağrısında 60 kayda kadar işleyin.
|
||
</Tip>
|