DB
RESTHeart란?
ipxy
2025. 4. 14. 11:10
728x90
📦 RESTHeart란?
RESTHeart는 MongoDB를 위한 전문 REST API 서버입니다.
- MongoDB를 바로 HTTP REST API로 사용할 수 있게 만들어줍니다.
- 별도 애플리케이션 코딩 없이, MongoDB를 그대로 API처럼 열어줍니다.
- 완전 프로덕션(운영) 레벨까지 고려해서 만든 고성능 서버입니다.
MongoDB를 HTTP REST API로 쉽게 열어주는, 고성능 오픈소스 서버
✅ RESTHeart 주요 특징
항목 | 내용 |
기능 | MongoDB 데이터베이스 → 자동 REST API 변환 |
지원 API | CRUD(Create, Read, Update, Delete) 전부 지원 |
설치 | Docker, Standalone Jar |
인증/보안 | Basic Auth, JWT, OAuth2 지원 |
확장성 | Custom 플러그인, 비즈니스 로직 확장 가능 |
관리 기능 | Role 기반 접근 제어 (RBAC) |
공식성 | MongoDB 공식은 아니지만, 상업 지원도 있음 |
커스터마이징 | YAML, JSON 설정 파일로 완벽 제어 |
✅ 설치 방법
Docker로 가장 쉽게 설치할 수 있습니다.
docker run -d --name restheart \
-p 8080:8080 \
-e MONGODB_URI=mongodb://your-mongodb-host:27017 \
softinstigate/restheart
- MONGODB_URI: 연결할 MongoDB 서버 주소 입력
- 기본 REST API 서버가 http://localhost:8080 에 뜹니다
✅ 기본 사용법 (HTTP 요청 예시)
1. 전체 컬렉션 조회 (GET)
GET http://localhost:8080/dbname/collectionname
2. 특정 문서 조회 (GET)
GET http://localhost:8080/dbname/collectionname/{_id}
3. 새 문서 삽입 (POST)
POST http://localhost:8080/dbname/collectionname
Content-Type: application/json
{
"name": "John",
"age": 30
}
4. 문서 수정 (PATCH 또는 PUT)
PATCH http://localhost:8080/dbname/collectionname/{_id}
Content-Type: application/json
{
"age": 31
}
5. 문서 삭제 (DELETE)
DELETE http://localhost:8080/dbname/collectionname/{_id}
✅ 인증 기능 (운영 환경 필수)
RESTHeart는 기본적으로 인증 활성화되어 있어요.
- 처음에는 admin/admin 같은 기본 계정 사용하거나
- security.yml 파일을 수정해서
- 사용자 추가
- API 별 Role/Permission 지정 가능
JWT, OAuth2 토큰 인증도 지원합니다.
✅ RESTHeart 구조
- RESTHeart가 API 요청을 MongoDB 쿼리로 변환
- 결과를 HTTP JSON으로 응답
✅ RESTHeart vs mongo-rest-server vs mongita 비교
항목 RESTHeart mongo-rest-server mongita
설치방식 | Docker/Standalone Jar | Node.js 모듈 | Python 모듈 |
MongoDB 필요 여부 | ✅ 필요 | ✅ 필요 | ❌ 필요 없음 (자체 파일 저장) |
인증 기능 | ✅ 매우 강력 (Basic, JWT, OAuth2) | ❌ 없음 | ❌ 없음 |
운영 환경 적합성 | ✅ (엔터프라이즈급) | ❌ (개발/테스트용) | ❌ (테스트용) |
API 완성도 | 고급 | 기본 | 없음 (Python 내부만) |
커스터마이징 | 플러그인 기반 확장 가능 | 코드 수정 필요 | 없음 |
추천 용도 | 실서비스용 | 개발용 간이 서버 | 로컬 테스트/개발 |
📢 요약
질문 답변
RESTHeart는 MongoDB를 바로 API로 쓸 수 있나? | ✅ 그렇습니다. |
인증과 권한 제어도 가능한가? | ✅ 완벽 지원합니다 (Basic Auth, JWT, OAuth2) |
APISIX와 연결할 수 있나? | ✅ HTTP API로 연결 가능 (프록시 설정) |
설치 어렵나? | ❌ Docker로 1줄이면 됩니다. |
🚀 보너스: APISIX + RESTHeart 연결 방법
APISIX 라우트 예시
{
"uri": "/mongo-api/*",
"plugins": {
"proxy-rewrite": {
"regex_uri": ["^/mongo-api/(.*)", "/dbname/$1"]
}
},
"upstream": {
"type": "roundrobin",
"nodes": {
"localhost:8080": 1
}
}
}
→ /mongo-api/users/1234 요청이 → RESTHeart → MongoDB 데이터 조회 → 응답하는 구조입니다.
✨ 정리
상황 | 추천 |
실서비스 MongoDB API화 | ✅ RESTHeart 강력 추천 |
개발용 빠른 테스트 | mongo-rest-server 가능 |
Python 앱 내부 DB 테스트 | mongita |
728x90