ElysiaJS, OpenAPI ve Bun ile 2025'te Başlangıç Rehberi

Ashley Goolam

Ashley Goolam

8 November 2025

ElysiaJS, OpenAPI ve Bun ile 2025'te Başlangıç Rehberi

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.

💡
Harika API Dokümantasyonu oluşturan mükemmel bir API Test aracı mı istiyorsunuz?

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!
button

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.

  1. 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.
  2. 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.
ElysiaJS official website

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 JS runtime

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.

  1. 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 --version ile doğrulayın.
  2. 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çin bun --version komutunu kontrol edin.
  3. 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çin bun --version komutunu çalıştırın.
install bun on windows

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:

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.

use bun to creat an elysia project

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.

using bun to 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.

using bun to run elysia project

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).

install openapi in elysia with bun

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.

using openaip docs with elysiajs

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

testing the pets api endpoint with openapi

Ö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.

testing elysia with curl

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.

running tests in elysiajs with 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.

testing post requesting in elysia with bun

Ü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.

testing ElysiaJS get requests in Apidog
Apidog'da ElysiaJS Get İsteklerini Test Etme
testing elysiajs post requests in apidog
Apidog'da ElysiaJS Post İsteklerini Test Etme

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.

button
Apidog user interface

API Tasarım-Öncelikli Yaklaşımı Apidog'da Uygulayın

API'leri oluşturmanın ve kullanmanın daha kolay yolunu keşfedin