✅ Path Variable이란?path variable은 URL 경로의 일부로 동적인 값을 전달하기 위한 방법입니다. 예를 들어 /users/123에서 123은 id라는 path variable입니다. RESTful API에서 자원을 명확하게 식별하기 위한 URL 패턴으로 널리 사용됩니다.1. Path Variable을 사용하는 이유① RESTful한 API 설계GET /users/123: ID가 123인 사용자를 조회DELETE /products/987: ID가 987인 상품 삭제HTTP 메서드(GET, POST, PUT, DELETE)와 결합하여 자원 중심의 API 구조를 설계할 수 있습니다.② 자원의 명확한 식별URL을 통해 특정 자원을 바로 가리킵니다.예: /articles/2024, /orde..
보호되어 있는 글입니다.
Kafka Connect SMT 멀티레포를 Git Submodule로 관리하면서,각 모듈을 개별로 개발 및 빌드 가능하게 유지하고,전체 통합(fat-jar) 빌드와 자동 배포까지 가능한 구조📦 전체 구조 요약📁 smt-core.git ← 공통 유틸 (JSON, logging 등)📁 smt-mask-email.git ← SMT 기능 A (email 마스킹)📁 smt-http-lookup.git ← SMT 기능 B (HTTP enrich)📁 smt-all.git ← 통합 레포 (submodule로 모든 모듈 포함 + fat-jar 빌드)🧱 1. 레포 연결 (Git Submodule 구성)smt-all 레포에서 아래처럼 설정:g..
✅ Kafka REST API 종류별 비교종류이름역활 Kafka or Kafka Connect 1. Confluent Kafka REST Proxykafka-restKafka Producer/Consumer 역할을 HTTP API로 제공Kafka 핸들링2. Kafka Connect REST API내장 REST API (/connectors, /tasks, 등)Kafka Connect 설정 및 관리Kafka Connect 핸들링3. Kafka Connect with REST Source Connectorhttp-source-connector 등외부 API → Kafka로 메시지 수집Kafka Connect에서 Kafka 핸들링🔍 상세 설명1. Kafka REST Proxy (Confluent 제공)Kaf..
APISIX + Lua (LUR: Lua Runtime) + RESTHeart 조합으로, API Gateway 단계에서 MongoDB REST API를 이용해 조회/등록/삭제/수정✅ 구조 개요APISIX에서 Lua 플러그인을 이용하여 RESTHeart에 HTTP 요청을 보내고, 결과를 클라이언트에 전달하는 방식입니다:[Client] ---> [APISIX + Lua Plugin] ---> [RESTHeart (MongoDB REST API)]1. APISIX Lua 플러그인 예제 구성1-1. 기본 구조 (rest-crud.lua)local http = require("resty.http")local cjson = require("cjson.safe")local _M = {}function _M.acces..
개요Apache APISIX는 Lua로 작성된 플러그인을 통해 요청 처리를 확장할 수 있는 API 게이트웨이입니다. 이 튜토리얼에서는 APISIX Lua 플러그인을 사용하여 RESTHeart를 통해 MongoDB 데이터를 조회하고, 그 결과를 Kafka 또는 외부 REST API로 전달하는 방법을 다룹니다. RESTHeart는 MongoDB에 대한 REST 인터페이스로, HTTP 요청으로 MongoDB 데이터를 손쉽게 조회할 수 있습니다.우리는 플러그인에서 RESTHeart API를 호출하여 JSON 형식의 데이터를 얻은 뒤, 이 데이터의 일부 필드를 추출하여 (1) Kafka 브로커로 전송하거나 (2) 외부 HTTP 서비스에 POST/PUT으로 보낼 것입니다. 각 방식마다 Lua 코드 예제와 함께 필요..
✅ 예시Kafka 메시지를 기반으로 RESTHeart에 다음 작업을 수행:조회(GET) → 메시지 키로 조건 조회등록(POST) → 메시지 내용을 새 문서로 등록수정(PUT/PATCH) → 특정 키의 문서 수정삭제(DELETE) → 특정 키에 해당하는 문서 삭제🔧 1. SMT 동작 방식 요약Kafka → Kafka Connect → SMT → RESTHeart (HTTP 요청) → 응답 무시 or 활용SMT는 메시지를 변환 또는 외부 시스템 호출 가능(비동기 or 동기)요청 실패 시 DLQ로 전달하도록 설계 가능📦 2. 커스텀 SMT Maven 프로젝트 구조custom-smt-rest/├── src/│ └── main/│ └── java/│ └── com/exampl..
📂 데이터베이스 및 컬렉션 생성1. 데이터베이스 생성Method: PUTURL: http://localhost:8080/mydb이 요청은 mydb라는 이름의 데이터베이스를 생성합니다.2. 컬렉션 생성Method: PUTURL: http://localhost:8080/mydb/mycollection이 요청은 mydb 데이터베이스 내에 mycollection이라는 컬렉션을 생성합니다.📝 문서 작업3. 문서 생성 (Create)Method: POSTURL: http://localhost:8080/mydb/mycollectionHeaders:Content-Type: application/jsonBody (raw JSON):{ "item": "notebook", "qty": 50, "size": { "..
📖 용어 정리항목설명APISIX Lua 변환API 요청이 APISIX에 도착했을 때 Lua 코드로 JSON/데이터를 변환Kafka Connect SMT 변환Kafka Connect가 Kafka Topic에 적재할 때 (또는 읽을 때) 데이터 포맷을 변환하는 플러그인 기능🧠 변환 위치 기준위치설명APISIX (Ingress)요청(Request)이 Backend로 가기 전에 변환Kafka Connect (ETL/Stream)Kafka에 저장되거나 Kafka로부터 읽을 때 변환 (중간 처리)즉, APISIX는 앞단에서 처리, Kafka Connect는 뒷단에서 처리합니다.✅ 장단점 비교항목APISIX Lua 변환 Kafka Connect SMT 변환처리 시점요청 수신 시 (HTTP 수신 시 즉시 변환)Ka..
OpenFaaS 함수를 JavaScript(Node.js) 로 작성해서,MongoDB REST Proxy (예: RESTHeart) 를 통해HTTP 요청으로 MongoDB 조회하는 예시.🛠️ OpenFaaS + JavaScript 함수 예시handler.js"use strict"const fetch = require('node-fetch'); // 외부 HTTP 호출용 라이브러리module.exports = async (event, context) => { const MONGO_PROXY_URL = "http://restheart.mongodb.svc.cluster.local:8080/mydb/mycollection"; try { const response = await fet..