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