이 문서는
bruno-api-typescript를 실제 프로젝트에서 사용하는 방법을 설명합니다.
- Bruno
.bru정의로부터 OpenAPI 스펙과 타입 안전한 API 클라이언트를 생성합니다. - 빌드/개발 과정에서 항상 최신 스키마를 바라보도록 실행 흐름을 구성합니다.
- Node.js 18+
- Bruno
.bru파일이 있는 디렉토리 npm install및npm run build완료
node dist/cli/index.js generate -i ./bruno -o ./openapi.jsonnode dist/cli/index.js generate-hooks -i ./bruno -o ./src/apis옵션 예시:
node dist/cli/index.js generate-hooks \
-i ./bruno \
-o ./src/apis \
--axios-path "@/utils/axiosInstance" \
--msw-output ./src/mocksbruno/
├── users/
│ └── profile.bru
└── applications/
└── create-application.bru
src/
└── apis/
├── users/
│ ├── api.ts
│ ├── apiDefinitions.ts
│ └── index.ts
└── applications/
├── api.ts
├── apiDefinitions.ts
└── index.ts
import { usersApi } from '@/apis/users';
const profile = await usersApi.getGetProfile({
params: { includeDetails: true },
});import { usersApiDefinitions } from '@/apis/users';
const def = usersApiDefinitions.getGetProfile;
console.log(def.method); // 'GET'
console.log(def.path); // '/users/profile'
type ProfileResponse = typeof def.response;빌드 또는 개발 실행 전에 자동으로 OpenAPI/클라이언트를 생성하도록 스크립트를 연결합니다.
{
"scripts": {
"api:generate": "node dist/cli/index.js generate -i ./bruno -o ./openapi.json",
"api:clients": "node dist/cli/index.js generate-hooks -i ./bruno -o ./src/apis",
"build": "npm run api:generate && npm run api:clients && tsc",
"dev": "npm run api:generate && npm run api:clients && tsc --watch"
}
}이렇게 구성하면 빌드와 개발 실행 시 항상 최신 스키마/클라이언트를 보장합니다.
A. 안 됩니다. api.ts, apiDefinitions.ts는 자동 생성 파일이며, 다음 실행 시 덮어쓰기됩니다.
src/hooks/ 또는 별도 레이어에서 API 클라이언트를 불러와 사용하는 것을 권장합니다.