API 생성기
API 생성기는 관리자가 저장 프로시저와 연결된 API 엔드포인트를 생성, 수정, 보호, 관리할 수 있는 기능입니다. Route URL, HTTP Method, 요청 JSON 구조, 파라미터 매핑, 보안 정책, Webhook 설정, 실행 가이드를 한 화면에서 관리할 수 있습니다.
웹사이트 프론트엔드, 외부 시스템, 자동화 스크립트, 연동 서비스에서 사용할 API를 안전하게 만들고 관리할 때 사용하는 기능입니다.
화면 개요
API 생성기는 크게 API Management, Security Policies, API Edit, Webhook / Execution Guide 영역으로 구성됩니다.
| 영역 | 설명 |
|---|---|
| API Management | 등록된 API를 검색, 필터링, 생성, 수정, 삭제하는 화면입니다. |
| Security Policies | API Key 또는 Bearer Token 방식의 보안 정책을 등록합니다. |
| API Edit | Route URL, API 이름, 저장 프로시저, 요청 JSON, 파라미터 매핑, 실행 설정을 관리합니다. |
| Webhook | API 실행 후 결과를 외부 URL로 전송하는 기능입니다. |
| Execution Guide | curl, JavaScript, Axios, C#, ASP.NET MVC, Python, Postman용 호출 예제를 생성합니다. |
API Management
API Management 화면에서는 등록된 API 목록을 확인할 수 있습니다. API 이름 또는 코드로 검색할 수 있으며, 상태와 보안 방식으로 필터링할 수 있습니다.
주요 버튼
| 버튼 | 기능 |
|---|---|
| Security Policies | API Key 또는 Bearer Token 보안 정책을 관리하는 화면으로 이동합니다. |
| Create New | 새 API를 생성합니다. |
| Apply | 검색 조건과 필터를 적용합니다. |
검색 및 필터
- Search: API 이름 또는 API 코드로 검색합니다.
- Status: 활성 또는 비활성 상태로 필터링합니다.
- Security: 보안 방식 또는 정책 기준으로 필터링합니다.
- Page Size: 한 페이지에 표시할 API 개수를 선택합니다.
API 목록
API 목록에는 ID, API 이름, Route, Method, 저장 프로시저, 보안 방식, 상태 등이 표시됩니다. 등록된 API가 없는 경우 No APIs have been registered. 메시지가 표시됩니다.
Security Policies
Security Policies는 API 요청을 인증하는 방법을 정의합니다. 보안 정책은 기본 정책으로 사용할 수도 있고, 개별 API에서 선택해서 사용할 수도 있습니다.
정책 생성
| 항목 | 설명 |
|---|---|
| Policy Name | 보안 정책을 구분하기 위한 이름입니다. |
| Policy Type | Shared Key 또는 Bearer Token 같은 보안 방식입니다. |
| Header Name | 클라이언트가 요청 시 전달해야 하는 HTTP Header 이름입니다. 예: X-API-KEY |
| Secret Value | API 호출에 필요한 보안 키 또는 토큰 값입니다. |
| Is Default | 해당 정책을 기본 API 정책으로 사용할지 설정합니다. |
| Is Active | 해당 정책을 사용할 수 있는 상태인지 설정합니다. |
| Memo | 정책에 대한 설명이나 메모를 입력합니다. |
API Key와 Token 값은 외부에 노출되면 안 됩니다. 안전하게 보관하고 필요할 경우 주기적으로 변경하세요.
API Edit
API Edit 화면은 하나의 API 엔드포인트를 설정하는 화면입니다. 기본 정보, 요청/응답 설정, 저장 프로시저 파라미터, 실행 설정, Webhook 설정을 관리할 수 있습니다.
Basic Information
| 항목 | 설명 |
|---|---|
| API Name | 관리자 화면에서 API를 구분하기 위한 이름입니다. |
| API Code | Per API Policy 모드에서 사용하는 보안 코드입니다. |
| Route URL | API를 호출할 때 사용하는 경로입니다. 예: /customer/list |
| HTTP Method | POST 또는 GET 같은 요청 방식입니다. |
| Stored Procedure Name | API와 연결할 저장 프로시저 이름입니다. |
| Description | API의 목적이나 설명을 입력합니다. |
SP List
SP List 버튼을 클릭하면 저장 프로시저 목록 팝업이 열립니다. 저장 프로시저를 선택하면 요청 JSON 구조와 파라미터 구조를 생성할 수 있습니다.
Request / Response Settings
이 영역에서는 API가 받을 요청 데이터와 저장 프로시저 파라미터 매핑 정보를 설정합니다.
Request JSON Schema
API 요청 시 전달해야 하는 JSON 구조를 정의합니다.
{
"Keyword": "",
"IsActive": true
}
Parameter Map JSON
요청 JSON 값을 저장 프로시저 파라미터에 매핑합니다.
{
"@Keyword": "{{Keyword}}",
"@IsActive": "{{IsActive}}"
}
Generate from SP
선택한 저장 프로시저의 파라미터를 기준으로 Request JSON Schema와 Parameter Map JSON을 자동 생성합니다.
SP Parameter Structure
선택한 저장 프로시저의 파라미터 구조를 표시합니다. 파라미터명, 데이터 타입, 길이, 모드, 순서 등을 확인할 수 있습니다.
Operation Settings
Operation Settings는 API가 요청을 받을 때 어떻게 동작할지 설정하는 영역입니다.
| 설정 | 설명 |
|---|---|
| Security Mode | API 보안 방식을 설정합니다. 일반적으로 Default Policy 또는 Per API Policy를 사용합니다. |
| Security Policy | 필요한 경우 특정 보안 정책을 선택합니다. |
| Active Status | API 사용 가능 여부를 설정합니다. |
| Public | API 공개 여부를 설정합니다. |
| Timeout Seconds | API 요청의 최대 실행 시간을 설정합니다. |
| Allow GET | POST Body 방식뿐 아니라 Query String 기반 GET 호출을 허용할지 설정합니다. |
| Active API | 체크되어 있으면 사용자가 API를 호출할 수 있습니다. |
| Allow GET Calls | 체크되어 있으면 Query String 기반 GET 방식으로 API를 호출할 수 있습니다. |
Webhook
Webhook은 API 실행 후 결과를 외부 URL로 전송하는 기능입니다. Webhook 전송이 실패해도 원래 API 응답 자체가 실패 처리되지는 않습니다.
| 항목 | 설명 |
|---|---|
| Use Webhook | Webhook 사용 여부를 설정합니다. |
| Webhook Method | Webhook 전송 방식입니다. 일반적으로 POST를 사용합니다. |
| Webhook URL | API 실행 결과를 받을 외부 URL입니다. |
| Webhook On Success Only | True이면 API 실행 성공 시에만 Webhook을 전송합니다. |
| Webhook Timeout Seconds | Webhook 요청의 최대 대기 시간입니다. |
| Webhook Headers JSON | 추가 HTTP Header가 필요한 경우 JSON 형식으로 입력합니다. |
| Webhook Payload JSON | Webhook으로 보낼 Payload 템플릿입니다. 비워 두면 시스템이 자동 생성합니다. |
Webhook Headers 예시
{
"Authorization": "Bearer your-token",
"X-SOURCE": "ApiGenerator"
}
Webhook Payload 예시
{
"apiName": "{{ApiName}}",
"routeUrl": "{{RouteUrl}}",
"success": {{Success}},
"message": "{{Message}}",
"traceId": "{{TraceId}}",
"requestJson": {{RequestJson}},
"responseJson": {{ResponseJson}}
}
사용 가능한 Webhook Placeholder
{{ApiName}}{{RouteUrl}}{{Success}}{{Message}}{{TraceId}}{{RequestJson}}{{ResponseJson}}
API Execution Guide
API Execution Guide는 저장된 API 설정을 기준으로 자동 생성되는 사용 가이드입니다. 호출 URL, 보안 Header, 요청 Body, 실행 규칙, 다양한 언어별 호출 예제를 제공합니다.
생성되는 예제 종류
- Overview / Call Rules
- curl
- JavaScript fetch
- Axios / jQuery
- C# / HttpClient
- ASP.NET MVC
- Python / requests
- Postman / Bruno
권장 작업 순서
- Admin > Site > API Generator 메뉴로 이동합니다.
- Security Policies를 클릭하여 기본 API 보안 정책을 생성합니다.
- API Management 화면으로 돌아옵니다.
- Create New를 클릭합니다.
- API 이름과 Route URL을 입력합니다.
- HTTP Method를 선택합니다.
- SP List를 사용해 저장 프로시저를 선택합니다.
- Generate from SP로 요청 JSON과 파라미터 매핑을 생성합니다.
- Operation Settings를 설정합니다.
- 필요한 경우 Webhook을 설정합니다.
- API를 저장합니다.
- Execution Guide를 열어 생성된 예제로 API를 테스트합니다.
자주 사용하는 작업
| 작업 | 권장 방법 |
|---|---|
| 프론트엔드 데이터 API 만들기 | SELECT 저장 프로시저와 연결된 API를 만들고 JavaScript fetch 또는 Axios로 호출합니다. |
| 고객 데이터 안전하게 제공 | 보안 정책을 적용하고 특별한 이유가 없으면 Public으로 설정하지 않습니다. |
| 외부 자동화 실행 | Webhook을 활성화하고 실행 결과를 외부 Endpoint로 전송합니다. |
| 브라우저에서 테스트 | Query String 기반 호출이 필요한 경우에만 Allow GET을 활성화합니다. |
| 외부 개발자에게 전달 | Execution Guide에서 생성된 호출 예제를 제공합니다. |
주의사항
- API 생성 및 수정 권한은 신뢰할 수 있는 관리자에게만 부여해야 합니다.
- 의도적으로 공개하는 API가 아니라면 반드시 보안 정책을 적용하세요.
- 민감한 저장 프로시저를 Public API로 노출하지 마세요.
- 저장 전 Request JSON과 Parameter Map JSON을 반드시 확인하세요.
- Timeout Seconds를 설정하여 장시간 실행되는 요청을 제한하세요.
- Webhook은 수신 URL이 신뢰할 수 있고 안정적인 경우에만 사용하세요.
- API Key 또는 Token은 주기적으로 변경하는 것이 좋습니다.
문제 해결
| 문제 | 가능한 원인 | 해결 방법 |
|---|---|---|
| API 목록에 보이지 않음 | API가 저장되지 않았거나 필터가 적용되어 있을 수 있습니다. | 필터를 초기화하고 API가 정상 저장되었는지 확인합니다. |
| Unauthorized 오류 발생 | 필요한 보안 Header가 없거나 값이 잘못되었을 수 있습니다. | 정책의 Header Name과 Secret Value를 확인합니다. |
| 저장 프로시저가 실행되지 않음 | 프로시저 이름 또는 파라미터 매핑이 잘못되었을 수 있습니다. | SP 이름, Request JSON Schema, Parameter Map JSON을 확인합니다. |
| GET 호출이 되지 않음 | Allow GET Calls가 비활성화되어 있을 수 있습니다. | GET 호출이 필요하면 Allow GET Calls를 활성화합니다. |
| Webhook이 전송되지 않음 | Webhook이 비활성화되었거나 URL이 잘못되었거나 Timeout이 발생했을 수 있습니다. | Use Webhook, Webhook URL, Timeout 값, Webhook Logs를 확인합니다. |
| Execution Guide 정보가 오래됨 | API 설정 변경 후 저장하지 않았을 수 있습니다. | API를 저장한 후 Execution Guide를 다시 엽니다. |
관리 권장 사항
- API 이름과 Route URL은 명확하게 작성하세요.
- API 전용으로 설계된 저장 프로시저를 사용하는 것이 좋습니다.
- Body JSON을 받는 API는
POST방식을 사용하는 것이 좋습니다. GET은 Query String 접근이 안전한 경우에만 허용하세요.- Public 사용자에게 노출되는 JavaScript 안에 Secret 값을 넣지 마세요.
- Webhook Payload는 작고 명확한 구조로 유지하세요.
- API를 공유하기 전 Execution Guide로 반드시 테스트하세요.
API 생성기는 백엔드 데이터베이스 기능을 외부에서 호출 가능한 Endpoint로 노출할 수 있습니다. API를 활성화하기 전에 보안 정책, 저장 프로시저 로직, 파라미터 매핑을 반드시 검토하세요.