Kaynağını okuyabileceğiniz kısaltıcı.
Gecikmeyi, hata oranlarını ve MTTR süresini ölçüyorsunuz. Elido, kaynağını okuyabileceğiniz bir kısaltıcıdır - REST + gRPC, dört dilde SDK'lar (TypeScript, Go, Python, Ruby), her yönlendirmede OpenTelemetry span'leri ve SaaS'ın yanlış şekil olduğuna karar verdiğiniz gün için bir Apache 2.0 self-host yolu.
- REST + gRPC: servis mesh'inizin tercih ettiği yüzeyi seçin
- Her yönlendirmede, her API çağrısında OpenTelemetry span'leri
- Altı SDK: TypeScript, Go, Python, Ruby, PHP, .NET
- Tek komutluk Helm chart'ıyla Apache 2.0 self-host
curl -X POST https://api.elido.app/v1/links -H "Authorization: Bearer $ELIDO_API_KEY" -H "Idempotency-Key: ci-2026-05-08-build-4419" -d '{ "destination_url": "https://shop.example.com/launch", "slug": "q2-launch", "workspace_id": "ws_8f3c" }'
{ "id": "link_01HQ3X...", "short_url": "https://b.elido.me/q2-launch", "click_tracker": "https://api.elido.app/v1/links/link_01HQ3X/clicks", "expires_at": "2026-08-08T00:00:00Z", "created_at": "2026-05-08T11:24:01Z" }
Gözlemlenebilirlik - eklenti değil, yerleşik
Her yönlendirme bir OpenTelemetry span'i yayar. Her span kolektörünüze iner.
Edge servisi uçtan uca OTel ile enstrümante edilmiştir. OTLP kolektörünüzü yönlendirme katmanına yönlendirin ve tek bir enstrümantasyon satırı yazmadan tam çağlayanı elde edin - cache araması, kural değerlendirmesi, yanıt ve asenkron tıklama olayı yayını.
SDK'lar
Aynı kanonik çağrı. Altı dil. Hepsi tek bir spesifikasyondan üretilmiş.
Her SDK aynı OpenAPI 3.1 spesifikasyonundan gönderilir. Sunucuya yeni bir uç nokta mı eklendi? Üreticiyi çalıştırın, SDK'ları gönderin, iş bitti. API'den sapan elle bakımı yapılan bir istemci yok. Idempotency anahtarları, üstel geri çekilmeyle yeniden denemeler ve tipli hata yanıtları altı dilin tamamında tutarlı bir şekilde sunulur.
- OpenAPI 3.1 tek gerçek kaynağıSpesifikasyon kaydedilmiş. SDK'lar her yayında yeniden üretilir.
- Tipli hata yanıtlarıHız sınırı, doğrulama, çakışma - hepsi tipli, asla string ile yakalanmaz.
- Idempotency anahtarlarıHer yazma uç noktasında başlık tabanlı, yeniden denemede tekrar oynatılır.
- Yerleşik yeniden denemelerDil başına saygı gösterilen Retry-After ile üstel geri çekilme.
create-link.ts1import { Elido } from2 "@elido/sdk";34const elido = new Elido({5 apiKey: process.env.ELIDO_API_KEY!,6});78const link = await elido.links.create({9 destinationUrl: dest,10 slug: "q2-launch",11});
create-link.go1import "github.com/elido/sdk-go"23client := elido.NewClient(4 elido.WithAPIKey(key),5)67link, err := client.Links.Create(ctx,8 &elido.CreateLinkRequest{9 DestinationURL: dest,10 Slug: "q2-launch",11 })
create_link.py1from elido import Elido23elido = Elido(4 api_key=os.environ["ELIDO_API_KEY"],5)67link = elido.links.create(8 destination_url=dest,9 slug="q2-launch",10 idempotency_key=build_id,11)
gRPC sözleşmesi
Protobuf'ta aynı yüzey - servis mesh'te yerli olanlar için.
api-core servisi, aynı işleyicilerden hem REST hem gRPC sunar. Platformunuz proto'yu yerel olarak konuşuyorsa (Envoy, Istio, Linkerd, Connect-Go), JSON katmanını atlayın. .proto dosyaları yayınlanmıştır; buf veya protoc'un desteklediği herhangi bir dilde istemci üretin.
1syntax = "proto3";23package elido.api.v1;45option go_package = "github.com/elido/proto/api/v1;apiv1";67service LinkService {8 rpc Create(CreateLinkRequest) returns (Link);9 rpc Resolve(ResolveLinkRequest) returns (ResolveLinkResponse);10 rpc List(ListLinksRequest) returns (ListLinksResponse);11 rpc Delete(DeleteLinkRequest) returns (google.protobuf.Empty);12}1314message CreateLinkRequest {15 string workspace_id = 1;16 string destination_url = 2;17 optional string slug = 3;18 optional google.protobuf.Timestamp expires_at = 4;19 repeated KeyValue tags = 5;20}2122message Link {23 string id = 1;24 string short_url = 2;25 string destination_url = 3;26 google.protobuf.Timestamp created_at = 4;27}
Authenticate with workload identity via SPIFFE/SPIRE or your mesh's built-in mTLS. API keys still work for non-mesh callers.
One implementation in api-core. Connect-Go transcoding means the REST surface is generated, not separately maintained.
ResolveLinkResponse streams click events for hot links - useful for internal dashboards without webhook plumbing.
Kutudan çıkanlar
- REST + gRPC: servis mesh'inizin tercih ettiği yüzeyi seçin
- Her yönlendirmede, her API çağrısında OpenTelemetry span'leri
- Altı SDK: TypeScript, Go, Python, Ruby, PHP, .NET
- Tek komutluk Helm chart'ıyla Apache 2.0 self-host
- HMAC-SHA256 imzalı webhook firehose'u
- Her serviste Prometheus /metrics uç noktası
Elido API'si gerçekte ne sunuyor
Bir OpenAPI spesifikasyonu ve bir Bearer token asgari şart. Aşağıdaki özellikler, üzerine inşa edebileceğiniz bir kısaltıcıyı gece yarısı savaşacağınız bir kısaltıcıdan ayıran şeylerdir.
44 belgelenmiş uç noktalı OpenAPI 3.1 - belgelenmemiş yüzey yok
Üretimdeki her uç nokta OpenAPI 3.1 spesifikasyonunda tanımlanmıştır. Gizli rota yok, dokümantasyon ekibinin unuttuğu belgelenmemiş parametre yok. Spesifikasyon repoya kaydedilir ve API ile birlikte versiyonlanır; kırıcı değişiklikler SemVer'i izler ve en az 90 günlük bir kullanımdan kaldırma penceresi alır. Spesifikasyon, dokümanlarda Scalar ile etkileşimli olarak render edilir - API anahtarınızı yapıştırın ve tarayıcıdan çıkmadan çağrıları deneyin. Aynı sürümden her yayında otomatik üretilen üç SDK (TypeScript, Python, Go), sunucunun gerçekte kabul ettiğinden asla sapamaz. SDK metotları tipli istek nesneleri kabul eder ve tipli yanıt nesneleri döndürür; hatalar tipli olur, string ile yakalanmaz. Idempotency anahtarları yazma uç noktalarında desteklenir - bir `Idempotency-Key` başlığı geçin ve yeniden denemede yanıt, yinelenen bir oluşturma olmadan tekrar oynatılır.
CI hatları için deterministik slug'lar, toplu oluşturma ve idempotency
POST /v1/workspaces/{ws}/links bir slug alanı kabul eder - istediğiniz slug'ı alırsınız veya mevcut linkin kimliğiyle birlikte bir çakışma hatası alırsınız, böylece hattınız ne yapacağına karar verebilir. Toplu oluşturma (POST .../links/bulk) çağrı başına 100'e kadar link spesifikasyonu kabul eder; yanıt, girdi satırı başına oluşturulan bir link veya bir hatayla bir sonuç içerir, böylece kısmi başarısızlıklar gizlenmez. Her iki uç nokta da idempotency anahtarlarını kabul eder: aynı isteği aynı anahtarla yeniden gönderin ve aynı yanıtı alırsınız, yinelenen satır olmaz. Bu, deploy'da kısa link basan CI/CD hatları için desendir - deterministik, yeniden denemek için güvenli, ortamlar arasında tutarlı. Slug ad alanı özel alan adı başınadır: aynı slug iki farklı alan adında iki farklı linktir, çakışma değildir.
Otomatik yeniden deneme ve dead-letter kuyruğu ile HMAC imzalı webhook'lar
Her çalışma alanı olayı (link oluşturuldu, link tıklandı, link silindi, denetim girdisi, atfedilen dönüşüm) webhook olarak kullanılabilir. Yükler, döndürülebilir bir gizli anahtar kullanılarak HMAC-SHA256 ile imzalanır; imzalama anahtarı API anahtarınızdan ayrıdır, böylece birini döndürmek diğerini geçersiz kılmaz. Teslimat semantiği: en az bir kez, üstel geri çekilmeyle (1s, 5s, 30s, 5dk, 30dk) ve yapılandırılabilir bir yeniden deneme penceresiyle (varsayılan 24 saat). Yeniden denemeleri tüketen olaylar panelde görünen bir dead-letter kuyruğuna iner; buradan yeniden oynatabilirsiniz. Yüksek hacimli olay hatları için Kafka uyumlu firehose, HTTP teslimatını tamamen atlar - tıklama olaylarını ve denetim günlüklerini akıştan doğrudan tüketin. Firehose bir Business özelliğidir; webhook teslimatı Pro ve üstünde mevcuttur.
Model Context Protocol sunucusu: herhangi bir MCP istemcisinde Elido araçları
Açık kaynak Elido MCP sunucusu (MIT lisanslı), link, QR ve analitik uç noktalarını tipli MCP araçları olarak sunar. Kurulum 30 saniye sürer: sunucu bloğunu Claude Desktop veya Cursor yapılandırmanıza ekleyin, ELIDO_API_KEY'i ayarlayın, yeniden başlatın. Araç kataloğu sunucudan otomatik olarak keşfedilir - sapan elle yazılmış araç tanımları yoktur. Salt okunur varsayılan kapsamdır; yazma işlemleri çalışma alanı ayarlarında açık izin gerektirir. Her araç çağrısı, çağıran anahtar ve argümanlarla çalışma alanı denetim günlüğünde görünür, böylece ajan güdümlü değişiklikler izlenebilir olur. Sunucu stdio ve SSE konuşur; REST API ile aynı hız sınırlarından ve hata kodlarından geçer, 429 üzerinde Retry-After dahil, böylece ajanınız temiz bir şekilde geri çekilebilir. Kaynak GitHub'da; yaygın fork'lar, Elido'nun upstream'i birleştirmesine gerek kalmadan çalışma alanına özgü araçlar veya metadata zenginleştirme ekler.
Helm chart'ı (Apache 2.0): yönlendirme katmanını kendi VPC'nizde çalıştırın
Yönlendirme katmanı, her yönlendirmenin sıcak yolunda bulunan tek bileşendir. Kendi içinde bütün, tek bir ikili dosyadır - L2 katmanı için bellek içi bir sıcak cache dışında çalışma zamanı bağımlılığı yoktur. Helm chart'ı, Kubernetes yatay pod otomatik ölçeklendirmesi için akıllıca varsayılanlarla gelir; CPU ve istek oranına göre ölçeklenir. Yapılandırma ortam değişkenleridir; chart, akıllıca varsayılanlar ve her değişkenin belgelenmiş bir listesiyle bir values.yaml içerir. Yığının kalanı (API ve panel) Elido tarafından yönetilen SaaS'ta kalabilir - her şeyi self-host etmek zorunda değilsiniz. Yaygın bölünme şudur: yönlendirme katmanı kendi VPC'nizde self-host edilir (kullanıcılarınıza daha düşük gecikme, egress faturası yok), panel ve analitik Elido'nun bulutunda. Güvenlik duruşunuz gerektiriyorsa yerel sıcak cache'in bekleme durumunda şifrelenmesi için kendi KMS'inizi getirin. Bitly (self-host seçeneği yok) ve özel bir kısaltıcı inşa etmeyle karşılaştırıldığında, Helm chart'ı seçeneği sıfırdan başlamadan yönlendirme performansını ve yönetilen API yüzeyini size verir.
Dokunacağınız yığın
- TypeScript SDK
- Python SDK
- Go SDK
- Webhook firehose'u
- OpenAPI 3.1 spesifikasyonu
- Self-host Helm chart'ı
Neyi ölçeceksiniz
- p50 yönlendirme gecikmesi
- 5 ms cache HIT
- API çalışma süresi SLA'sı
- Business'ta %99,95
- Self-host RTO
- <1 saat
Bunun üzerine inşa eden mühendislik ekipleri
Adlar şu an için yer tutucudur - vaka çalışmaları yayınlandıkça gerçek müşteri adları buraya gelecek.
“Yönlendirme katmanını kendi Kubernetes kümemizde self-host ediyoruz ve gerisi için yönetilen API'yi kullanıyoruz. p50 yönlendirme gecikmesi, edge servisini kullanıcılarımızla aynı bölgeye taşıdıktan sonra 45ms'den 6ms'ye düştü. Helm chart'ı, destek ekibine danışmadan gönderime çıkacak kadar okunabilirdi.”
“MCP sunucusu belirleyici faktördü. Ekibimiz gün boyunca Cursor'da çalışıyor; iş akışından çıkmadan IDE içinden yayın notları için etiketli kısa linkler oluşturabilmek, gerçekten kalıcı olan türden bir DX kazancı.”
“Toplu oluşturmadaki idempotency anahtarları, yeniden denemelerin yinelenen kayıtlar oluşturması konusunda paranoyaya kapılmadan CI'da kısa link basmamızı sağlıyor. Tipli Go SDK, hat kodumuzun derlenmesi veya başarısız olması anlamına geliyor - çalışma zamanında sessiz kötü istekler yok.”
Elido API vs Bitly API vs kendi kısaltıcınızı inşa etmek
İki harici seçenek ve kendin-inşa-et alternatifi. Bitly'nin API'sinin nerede daha olgun olduğu ve özel bir kısaltıcının kontrolde nerede kazandığı konusunda dürüst.
| Yetenek | Elido | Bitly API | Özel kısaltıcı |
|---|---|---|---|
| API spesifikasyon formatı | OpenAPI 3.1, repoya kaydedilmiş | Özel v4 dokümanları (OpenAPI değil) | Ne yazarsanız o |
| Birinci taraf SDK'lar | TypeScript, Python, Go - spesifikasyondan üretilmiş | JavaScript, Python, Ruby, Java | Kendiniz inşa edersiniz |
| Yazmalarda idempotency anahtarları | Evet - başlık tabanlı, tüm yazma uç noktaları | Belgelenmemiş | Kendiniz uygularsınız |
| Toplu oluşturma | Çağrı başına 100, satır başına kısmi başarısızlık | Belgelenmiş yerel toplu uç nokta yok | Kendi şemanız, kendi kurallarınız |
| Webhook teslimatı | En az bir kez, HMAC-SHA256, DLQ | Enterprise'da mevcut | Kendiniz inşa edersiniz |
| MCP sunucusu | MIT açık kaynak, 30 saniyelik kurulum | Mevcut değil | Kendiniz inşa edersiniz |
| Self-host yönlendirme katmanı | Apache 2.0 Helm chart'ı | Mevcut değil | Tam kontrol, tam maliyet |
| p50 yönlendirme gecikmesi | 5 ms cache HIT | Karşılaştırılabilir (edge'den sunulur) | Altyapınıza bağlı |
Geliştirici soruları
OpenAPI spesifikasyonu nerede?
/docs/api-reference adresinde - Scalar onu etkileşimli olarak render eder. Ham YAML /openapi.yaml adresindedir. SDK'ların üretildiği aynı spesifikasyondur, ayrı bakımı yapılan bir dokümantasyon değildir.
CI'da deterministik bir slug nasıl alırım?
İstek gövdesinde `slug` geçin. Slug zaten farklı bir link tarafından alınmışsa, API çakışan linkin kimliğiyle 409 döndürür. Aynı hedef URL tarafından alınmışsa (idempotent yeniden oluşturma), mevcut linki döndürür. Yeniden denemeleri güvenli hale getirmek için Idempotency-Key başlığını kullanın.
Self-host Helm chart'ı ne içerir?
Yönlendirme katmanı ikili dosyası, sıcak cache yapılandırması, HPA ayarları ve tüm yapılandırma değişkenlerinin belgelendiği bir values.yaml. API veya paneli içermez - bunlar Elido'nun SaaS'ında kalabilir. Apache 2.0 lisansı; fork'lar için CLA gerekmez.
Anket yapmadan tıklama olaylarını nasıl tüketirim?
İki seçenek: webhook'lar (HTTPS, HMAC imzalı, en az bir kez) veya Kafka uyumlu firehose (doğrudan tüketici, Business katmanı). Webhook'lar denetim ve uyarı için uygundur; olay başına HTTP teslimat maliyetinin önemli olduğu yüksek hacimli olay hatları için doğru yol firehose'dur.
Hız sınırı nedir?
API anahtarı başına sürekli 100 istek/saniye, 200 patlama, 429 ve Retry-After başlığıyla. Yazma uç noktaları okumalardan ayrı sayılır. MCP sunucusu 429'u bir araç hatası olarak geçirir; SDK'lar Retry-After değerini hız-sınırı hatasında tipli bir alan olarak sunar.
MCP sunucusunu sadece etkileşimli olarak değil, üretim otomasyonunda kullanabilir miyim?
Evet - MCP sunucusu standart bir stdio veya SSE sürecidir. Onu bir betikten, bir CI adımından veya bir ajan hattından çağırabilirsiniz. Varsayılan olarak salt okunur; yazma kapsamı açık çalışma alanı ayarı gerektirir. Her çağrı denetlenir.
Hangi kırıcı değişiklik politikasını kullanıyorsunuz?
API sürüm önekinde SemVer (/v1/, /v2/). Kırıcı değişiklikler, her iki sürüm de aynı anda canlı olacak şekilde 90 günlük bir kullanımdan kaldırma penceresi alır. Kırıcı olmayan eklemeler (yeni alanlar, yeni uç noktalar) sürüm artışı olmadan gerçekleşir. /changelog adresindeki değişiklik günlüğü, etkilenen uç noktayla her değişikliği belgeler.
Gerçek API'ye dokunmadan yerel bir geliştirme modu var mı?
TypeScript ve Python SDK'ları, kendi örneğinize işaret eden bir baseUrl geçersiz kılmasını kabul eder - self-host kullananlar için kullanışlıdır. Henüz resmi bir mock sunucu yok; yerel test için desen, mock değil, ayrı bir API anahtarına sahip bir test çalışma alanıdır. Yol haritasında.
Geliştiricinin okuma listesi
OpenAPI 3.1 spesifikasyonu, altı birinci taraf SDK ve her birinin sunduğu şey.
HMAC imzalı olaylar, yeniden deneme politikası, dead-letter kuyruğu, Kafka firehose'u.
Edge kural motoru - yönlendirme mantığınızın servisinize ait olmadığı durumlarda kullanışlı.
Kılavuzlar, referanslar ve mimari notları - kodu gönderen ekip tarafından yazılmış.
Etkileşimli Scalar ile render edilmiş OpenAPI spesifikasyonu, tüm 44 uç nokta.
Slack, Zapier, Make, n8n ve her bağlayıcının kaynağı.
Hangi açının uyduğundan emin değil misiniz?
Çoğu ekip birinden başlar ve dördüne birden büyür. Satış ekibimiz, kendi yığınınızı 20 dakikada sizinle birlikte gözden geçirebilir.