JavaScript와 TypeScript 개발을 위한 빠르고 통합적인 툴킷인 Bun 1.0과
Bun 웹 프레임워크인 ElysiaJS를 사용하여 API를 만드는 방법에 대해 알아보겠습니다.
1. Bun 설치하기
curl -fsSL https://bun.sh/install | bash -s "bun-v1.0.0"
또는
npm install -g bun
2. 새로운 프로젝트 생성하기
bun create elysia hi-elysia
3. bun이 설치된 디렉토리로 이동하기
cd hi-elysia
4. src/index.ts 파일 열고 코드 확인하기
import { Elysia } from 'elysia'
const app = new Elysia()
.get('/', () => 'Hello Elysia')
.listen(8080)
console.log(`🦊 Elysia is running at ${app.server?.hostname}:${app.server?.port}`)
5. 요청 본문 타입 정의하기
new Elysia()
.post('/sign-in', ({ body }) => signIn(body), {
body: t.Object({
username: t.String(),
password: t.String()
})
})
.listen(8080)
6. 경로 매개변수(Path Parameters)
경로 매개변수는 URL 패턴 내부 변수입니다. 패턴이 일치하면 context.params에 이름이 지정된 경로가 생성되고 그 값으로 검색 가능
new Elysia()
.get('/id/:id', ({ params: { id } }) => getUserById(id))
.listen(8080)
7. 와일드카드(Wildcard)
모든 패턴을 일치시키거나 너무 많은 중복성을 가지고 있는 경우 '*' 와일드카드를 사용하여 나머지 일치 가능
new Elysia()
.get('/user/*', () => doSomething())
.listen(8080)
8. Swagger 플러그인 사용하기
플러그인을 사용하면 한 줄의 코드로 Swagger를 이용하여 API 문서를 생성 가능
import { Elysia, t } from 'elysia'
import { swagger } from '@elysias/swagger'
new Elysia()
.use(swagger())
.post('/sign-in', ({ body }) => signIn(body), {
body: t.Object({
username: t.String(),
password: t.String()
})
})
.listen(8080)
9. 전체 코드 확인하기
import { Elysia, t } from 'elysia'
import { swagger } from '@elysias/swagger'
const app = new Elysia()
.use(swagger())
.get('/ping', () => 'pong')
.route('M-SEARCH', () => 'From M Search')
.get('/id/:id', ({ params: { id } }) => getUserById(id))
.get('/user/*', () => doSomething())
.post('/sign-in', ({ body }) => signIn(body), {
body: t.Object({
username: t.String(),
password: t.String()
})
})
.listen(8080)
export type App = typeof app
10. 서버 실행하기
브라우저에서 http://localhost:8080 으로 이동하면 서버가 실행 중임을 확인 가능
bun dev
11. 클라이언트에서 호출하기
// client.ts
import { edenTreaty } from '@elysias/eden'
import type { App } from './server'
const app = edenTreaty<App>('http://localhost:8080')
app.signIn.post({
username: 'saltyaom',
password: 12345678
}).then(console.log)
Bun 1.0과 ElysiaJS를 사용하여 복잡한 API도 쉽게 만들 수 있게 되었습니다.
[참고 사이트]
https://elysiajs.com/quick-start.html
Getting Start - ElysiaJS
Elysia is a library built for Bun, and it's all you need to get started. Bootstrap a new project with "bun create elysia hi-elysia" and start the development server with "bun dev". That's all you need to work on Elysia.js!
elysiajs.com
반응형