Doğru çerçeveyi seçmek, verimli ve ölçeklenebilir API'ler oluşturmada tüm farkı yaratabilir. Hafif bir Node.js çerçevesi olan ElysiaJS, Bun'ın yüksek performanslı çalışma zamanı ve OpenAPI'nin dokümantasyon ve istemci oluşturma için standardizasyonu ile olağanüstü iyi eşleşir. Bu kombinasyon, geliştiricilere minimum ek yük ile sağlam RESTful hizmetleri oluşturmak için kolaylaştırılmış bir yol sunar. API'ler modern uygulamaların omurgası haline geldikçe, ElysiaJS, OpenAPI ve Bun ile başlamak, tür açısından güvenli, iyi belgelenmiş uç noktaları hızlı bir şekilde sunmanızı sağlar. Bu kılavuzda, ElysiaJS'nin temellerinden uygulamalı kurulumuna, platformlar arası yükleme adımlarına ve pratik kod örneklerine kadar her şeyi ele alacağız. Bu eğitim, optimum bir geliştirme deneyimi için Bun'ın hızından yararlanarak elysiajs'yi openapi ile sorunsuz bir şekilde entegre etmenize yardımcı olacaktır.
Geliştirici Ekibinizin maksimum üretkenlikle birlikte çalışması için entegre, Hepsi Bir Arada bir platform mu istiyorsunuz?
Apidog tüm taleplerinizi karşılar ve Postman'ı çok daha uygun bir fiyata değiştirir!
ElysiaJS Nedir?
ElysiaJS, RESTful API'ler oluşturmak için minimal ancak oldukça genişletilebilir olacak şekilde tasarlanmış hafif, hızlı bir Node.js web çerçevesidir. Küçük bir yüzey alanına, temiz TypeScript desteğine ve rotaları, ara yazılımları ve eklentileri tanımlamak için sezgisel bir API'ye vurgu yapar. ElysiaJS, geliştirici dostu bir deneyim ve kutudan çıktığı haliyle güçlü OpenAPI entegrasyonu ile performans sunmayı amaçlar. Temel güçleri arasında birinci sınıf OpenAPI desteği, bir eklenti ekosistemi ve sizi ağır soyutlamalara kilitlemeden hızı ve basitliği destekleyen bir tasarım bulunur. Bu, ElysiaJS'yi, API'lerinin OpenAPI spesifikasyonları aracılığıyla kolayca belgelenebilir ve tüketilebilir olmasını sağlarken, kalıp kod yerine mantığa odaklanmak isteyen geliştiriciler için özellikle çekici kılar.
2025'te Neden ElysiaJS'yi Seçmelisiniz?
ElysiaJS'yi seçmek, API geliştirme sürecinizi iyileştiren birkaç cazip fayda sağlar.
- Performans, yalın çalışma zamanı ve hızlı rota işleme ile düşük ek yüke odaklanmasıyla öne çıkar, bu da uygulamaların yük altında verimli bir şekilde ölçeklenmesini sağlar. Dahili OpenAPI hazır oluşu, OpenAPI spesifikasyonlarını zahmetsizce oluşturabileceğiniz ve sunabileceğiniz anlamına gelir; bu da API dokümantasyonunu ve istemci oluşturmayı basitleştirir; mikro hizmetler veya genel API'ler üzerinde işbirliği yapan ekipler için kritik öneme sahiptir.
- Geliştirici deneyimi bir diğer önemli noktadır: ElysiaJS, TypeScript dostudur, özlü rota tanımlarına ve projeniz genişledikçe büyümeyi destekleyen modüler bir mimariye sahiptir. Ekosistemi, OpenAPI desteği, dokümantasyon ve test yardımcı programları için büyüyen bir eklenti seti içerir ve mevcut araçlarla sorunsuz bir şekilde entegre olur. OpenAPI odaklı tasarım, kodunuz ve belgeleriniz arasında tutarlılık sağlar ve bakım çabalarını azaltır.

Bun Nedir?
Bun, hepsi bir arada hızlı bir JavaScript çalışma zamanı, paket yöneticisi ve paketleyicidir. Çoğu durumda Node.js'nin yerine geçecek şekilde tasarlanmıştır, daha hızlı başlangıç süreleri ve verimli araçlar sunar. Bun, geliştirme iş akışlarını, bağımlılık kurulumunu ve betik yürütmeyi hızlandırabilir, bu da onu ElysiaJS gibi modern çerçevelerle popüler bir eşleştirme yapar. JavaScript ekosisteminde birden fazla rolü üstlenerek, Bun bağlam değiştirme işlemini azaltır ve geliştiricilerin araçları yönetmek yerine inşa etmeye odaklanmasını sağlar. Node API'leri ile uyumluluğu sorunsuz bir geçiş sağlarken, yerel TypeScript ve JSX desteği ElysiaJS projelerinde üretkenliği artırır.

Bun Kurulumu (MacOS, Linux ve Windows)
Bun'ı tüm platformlarda çalıştırmak kolaydır, bu da onu ElysiaJS ile hızlı bir şekilde eşleştirebilmenizi sağlar.
- MacOS için Terminal'i açın ve kurulum betiğini çalıştırın:
curl -fsSL https://bun.sh/install | bash. Bu, Bun'ı indirir ve kurar, PATH'inize ekler.bun --versionile doğrulayın. - Linux'ta, terminalinizde aynı curl komutunu kullanın:
curl -fsSL https://bun.sh/install | bash. Ubuntu ve Fedora gibi büyük dağıtımları destekler. Kabuğunuzu yeniden başlatın veya profilinizi kaynaklayın, ardından doğrulamak içinbun --versionkomutunu kontrol edin. - Windows kullanıcıları, yönetici olarak PowerShell aracılığıyla kurabilir:
powershell -c "irm bun.sh/install.ps1 | iex". Bu, gerekirse Chocolatey entegrasyonu dahil kurulumu halleder. PowerShell'i tekrar başlatın ve doğrulamak içinbun --versionkomutunu çalıştırın.

Tüm durumlarda, Bun saniyeler içinde kurulur ve ElysiaJS projeleri için hazırdır; temel kullanım için ek yapılandırma gerekmez.
ElysiaJS ile Başlarken
Bir ElysiaJS projesine başlamak birkaç ön koşulla başlar:
- Bir Node.js ortamı veya Bun yüklü (Bun'ın daha hızlı araçlarını tercih ediyorsanız, daha önce belirtildiği gibi bun.sh adresinden indirin).
- Bir proje dizini.
Başlatmak için, hız için Bun'ı kullanın: bun create elysia my-api. Bu, package.json ve TypeScript desteği ile temel bir yapı oluşturur.

Bun olmadan, npm aracılığıyla npm create elysia my-api komutunu çalıştırın. cd my-api ile klasöre gidin ve rotaları tanımlamaya hazırsınız.
ElysiaJS'nin minimal kurulumu, hızlı prototiplemeyi teşvik eder; çekirdek modülü içe aktarın, işleyicileri tanımlayın ve bir bağlantı noktasında dinleyin. Bu temel, başlangıçtan itibaren dokümantasyon için OpenAPI'yi entegre ederek kolayca ölçeklenir.
ElysiaJS Kurulumu ve Ayarlanması
Çalışma zamanınız hazır olduğunda kurulum tek satırlıktır. Bun ile: bun install elysia.

npm için: npm install elysia. TypeScript kullanıyorsanız, eksiksizlik için @types/node ekleyin.
Kurulum, bir giriş dosyası olan index.ts oluşturmayı içerir:
import { Elysia } from "elysia";
const app = new Elysia().get("/", () => "Hello Elysia").listen(3000);
console.log(
`🦊 Elysia is running at ${app.server?.hostname}:${app.server?.port}`
);Bun ile çalıştırın: bun run index.ts veya Node ile: npx ts-node index.ts. Yanıtı görmek için "http://localhost:3000" adresini ziyaret edin. Bu temel uygulama ElysiaJS'nin basitliğini doğrular; gerektiğinde ara yazılımlar veya eklentilerle genişletin.

ElysiaJS'yi OpenAPI ile Entegre Etme
ElysiaJS'nin OpenAPI desteği, rotalarınızdan otomatik olarak oluşturulan spesifikasyonları etkinleştiren eklentiler aracılığıyla parlar. Eklentiyi yükleyin: bun add @elysiajs/openapi (veya npm eşdeğeri).

Uygulamanızda yapılandırın:
import { Elysia } from 'elysia'
import { openapi, fromTypes } from '@elysiajs/openapi'
export const app = new Elysia()
.use(
openapi({
references: fromTypes()
})
)
.get(
'/pets',
() => [
{ id: 1, name: 'Fluffy' },
{ id: 2, name: 'Spot' }
],
({
summary: 'Get all pets',
responses: { 200: { description: 'Success' } }
} as any)
)
.listen(3000)
Dokümanlara "/openapi" veya "/docs" (yani "http://localhost:3000/openapi") adresinden erişin, burada Swagger UI etkileşimli şemaları oluşturur. ElysiaJS, işleyicilerden türleri çıkarır, kod-spesifikasyon uyumunu sıkılaştırır. Gelişmiş kurulumlar için, elysiajs ile openapi'nin kod tabanınızla birlikte gelişmesini sağlayarak ekosistem araçlarını kullanarak TypeScript'ten oluşturun.

Yeni oluşturduğumuz örnek "Pets" API uç noktasını test etmek için "Test Request" düğmesine tıklayın.

Örnek Kod: Temel Bir ElysiaJS Uygulaması Oluşturma ve Test Etme
ElysiaJS'yi test etmek basit bir uygulama ile başlar. "Merhaba dünya" uygulamasını genişletin:
import { Elysia } from 'elysia'
const app = new Elysia()
.get('/', () => 'Hello from ElysiaJS!')
.post('/echo', ({ body }) => body, {
body: t.Object({ message: t.String() })
})
.listen(3000, () => console.log('Server listening on http://localhost:3000'))
Curl ile çalıştırın ve test edin: curl -X POST http://localhost:3000/echo -H "Content-Type: application/json" -d "{\"message\": \"Test\"}". Yankılanan yanıtı bekleyin.

Birim testleri için bun:test kullanın. Projenizin kök dizininde "test" adında bir klasör oluşturun ve aşağıdaki kodla index.test.ts adlı bir dosya ekleyin:
import { describe, expect, it } from 'bun:test'
import { Elysia } from 'elysia'
describe('Elysia', () => {
it('returns a response', async () => {
const app = new Elysia().get('/', () => 'hi')
const response = await app
.handle(new Request('http://localhost/'))
.then((res) => res.text())
expect(response).toBe('hi')
})
})Testleri çalıştırmak için basitçe şu komutu kullanın: bun test.

Bu, temel işlevselliği doğrular ve ElysiaJS'nin güvenilirliğini onaylar.
Örnek Kod: ElysiaJS ve OpenAPI Birlikte Çalışıyor
ElysiaJS'yi OpenAPI ile kullanmak için bir evcil hayvan API'si oluşturun:
import { Elysia, t } from 'elysia'
import { openapi, fromTypes } from '@elysiajs/openapi'
const app = new Elysia()
.use(
openapi({
references: fromTypes()
})
)
.get('/pets', () => [
{ id: 1, name: 'Fluffy', type: 'Cat' },
{ id: 2, name: 'Spot' }
], ({
summary: 'List pets',
responses: {
200: {
description: 'Success',
content: {
'application/json': {
schema: {
type: 'array',
items: { type: 'object', properties: { id: { type: 'integer' }, name: { type: 'string' }, type: { type: 'string' } } }
}
}
}
}
}
} as any))
.post('/pets', ({ body }) => ({ id: Date.now(), ...body }), {
body: t.Object({ name: t.String(), type: t.String() }),
summary: 'Create pet',
responses: { 200: { description: 'Created' } }
})
.listen(3000, () => console.log('Server listening on http://localhost:3000'))
import { Elysia, t } from 'elysia'
import { openapi, fromTypes } from '@elysiajs/openapi'
const app = new Elysia()
.use(
openapi({
references: fromTypes()
})
)
.get('/pets', () => [
{ id: 1, name: 'Fluffy', type: 'Cat' },
{ id: 2, name: 'Spot' }
], ({
summary: 'List pets',
responses: {
200: {
description: 'Success',
content: {
'application/json': {
schema: {
type: 'array',
items: { type: 'object', properties: { id: { type: 'integer' }, name: { type: 'string' }, type: { type: 'string' } } }
}
}
}
}
}
} as any))
.post('/pets', ({ body }) => ({ id: Date.now(), ...body }), {
body: t.Object({ name: t.String(), type: t.String() }),
summary: 'Create pet',
responses: { 200: { description: 'Created' } }
})
.listen(3000, () => console.log('Server listening on http://localhost:3000'))
POST'u test edin: curl -X POST http://localhost:3000/pets -H "Content-Type: application/json" -d '{"name": "Scooby Doo", "type": "Dog"}'. Şemaları ve yolları doğrulayarak Swagger belgeleri için /openapi adresini ziyaret edin.

Üretime Hazırlık İçin Pratik İpuçları
Tür güvenliği çok önemlidir: Güvenilirliği ve OpenAPI oluşturma doğruluğunu artırmak için istek gövdeleri, yanıtlar ve rota parametreleri için TypeScript türlerini kullanın. Gözlemlenebilirlik, API davranışını izlemek için günlükleme, metrikler ve hata işleme ara yazılımlarının eklenmesini gerektirir. Güvenlik önlemleri, gerektiğinde CORS kontrolleri, giriş doğrulama, hız sınırlama ve kimlik doğrulamanın uygulanmasını içerir. Paketleme, yalın bir dağıtım paketi üretmek için Bun'ın veya paketleyicinizin üretim derleme adımlarını kullanmayı içerir. Dokümantasyon, istemci SDK'larının ve dokümantasyonun güncel kalmasını sağlamak için OpenAPI spesifikasyonunu kodla senkronize tutmayı gerektirir.
Sıkça Sorulan Sorular
S1: ElysiaJS büyük ölçekli uygulamalar için uygun mu?
Cevap: Evet, modüler tasarımı ve performansa odaklanması, kurumsal API'ler için ölçeklenebilir olmasını sağlar.
S2: ElysiaJS TypeScript gerektiriyor mu?
Cevap: Hayır, ancak tür açısından güvenli OpenAPI oluşturma için şiddetle tavsiye edilir.
S3: Bun, ElysiaJS ile Node.js'ye kıyasla nasıl?
Cevap: Bun daha hızlı kurulum ve çalıştırma sunar, ancak aşinalık tercih ediyorsanız Node.js de çalışır.
S4: Mevcut koddan OpenAPI spesifikasyonları oluşturabilir miyim?
Cevap: Kesinlikle, rota tanımlarından çıkarsama yapan ElysiaJS eklentilerini kullanarak.
S5: ElysiaJS ile en iyi hangi test çerçeveleri eşleşir?
Cevap: Birim testleri için Apidog, Vitest veya Jest, API simülasyonları için Supertest.


Sonuç: ElysiaJS, OpenAPI ve Bun ile Daha Akıllı API'ler Oluşturun
ElysiaJS, hız ve basitliğin birleşimi, Bun'ın çalışma zamanı verimliliği ve OpenAPI'nin dokümantasyon gücüyle birleştiğinde, API geliştirme için cazip bir yığın oluşturur. Kurulumdan teste kadar, bu kılavuz sizi inşa etmeye başlamak için donattı. Örnekleri deneyin, rotalarınızı iyileştirin ve projelerinizin gelişmesini izleyin; ElysiaJS bir sonraki yaratımınıza güç vermeye hazır.

