{ "openapi": "3.0.0", "info": { "title": "SAM API Documentation", "description": "SAM(Semi-Automatics Management) API 입니다.", "contact": { "email": "shine1324@gmail.com" }, "version": "1.0.0" }, "servers": [ { "url": "https://api.5130.co.kr", "description": "SAM API 서버" } ], "paths": { "/api/debug-apikey": { "get": { "tags": [ "API Key 인증" ], "summary": "API Key 인증 확인", "operationId": "339b727010e448749df58cd6b6ff7c28", "responses": { "200": { "description": "API Key 인증 성공" }, "401": { "description": "인증 실패" } }, "security": [ { "ApiKeyAuth": [] } ] } }, "/api/login": { "post": { "tags": [ "Auth" ], "summary": "회원 토큰 정보확인", "operationId": "f6d04be1de7bb4a85327471c8d3d1e42", "requestBody": { "required": true, "content": { "application/json": { "schema": { "required": [ "USER_ID", "USER_PWD" ], "properties": { "USER_ID": { "type": "string", "example": "admin" }, "USER_PWD": { "type": "string", "example": "1234" } }, "type": "object" } } } }, "responses": { "200": { "description": "로그인 성공", "content": { "application/json": { "schema": { "properties": { "message": { "type": "string" }, "USER_TOKEN": { "type": "string" } }, "type": "object" } } } }, "401": { "description": "로그인 실패" } } } }, "/api/logout": { "post": { "tags": [ "Auth" ], "summary": "로그아웃 (Access 및 Token 무효화)", "operationId": "ff979e4e699115485dc29fb752d8e3a5", "responses": { "200": { "description": "로그아웃 성공" }, "401": { "description": "인증 실패" } }, "security": [ { "ApiKeyAuth": [] } ] } }, "/api/member/index": { "get": { "tags": [ "Member" ], "summary": "회원 목록 조회", "description": "회원 목록을 조회합니다.", "operationId": "ced049450f232af2399028145777ed3c", "parameters": [ { "name": "user_token", "in": "query", "description": "회원 인증용 토큰", "required": true, "schema": { "type": "string", "example": "abc123token" } }, { "name": "type", "in": "query", "description": "조회 타입: 기본(default), 상세(info)", "required": false, "schema": { "type": "string", "enum": [ "default", "info" ], "example": "default" } }, { "name": "debug", "in": "query", "description": "디버그 모드 여부 (쿼리 로그 포함 여부)", "required": false, "schema": { "type": "boolean", "example": true } }, { "name": "status", "in": "query", "description": "상태 필터링 (01,02,03 사용자만 조회)", "required": false, "schema": { "type": "boolean", "example": true } } ], "responses": { "200": { "description": "회원 목록 조회 성공", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "example": true }, "message": { "type": "string", "example": "회원목록 조회 성공" }, "data": { "properties": { "1": { "properties": { "mb_num": { "type": "integer", "example": 1 }, "tn_num": { "type": "string", "example": null }, "mb_id": { "type": "string", "example": "admin" }, "mb_name": { "type": "string", "example": "권혁성" }, "mb_phone": { "type": "string", "example": "010-4820-9104" }, "mb_mail": { "type": "string", "example": "shine1324@gmail.com" }, "email_verified_at": { "type": "string", "format": "date-time", "example": null }, "mb_type": { "type": "string", "example": null }, "mb_level": { "type": "integer", "example": 1 }, "last_login": { "type": "string", "format": "date-time", "example": null }, "reg_date": { "type": "string", "format": "date-time", "example": "2025-07-16T09:28:41.000000Z" }, "created_at": { "type": "string", "format": "date-time", "example": null }, "updated_at": { "type": "string", "format": "date-time", "example": "2025-07-16T09:30:56.000000Z" } }, "type": "object" } }, "type": "object" }, "query": { "type": "array", "items": { "type": "string", "example": "select * from `members`" } } }, "type": "object" } } } }, "401": { "description": "인증 실패" }, "403": { "description": "권한 없음" } }, "security": [ { "ApiKeyAuth": [] } ] } }, "/api/member/show/{user_no}": { "get": { "tags": [ "Member" ], "summary": "회원 상세조회", "description": "user_no 기준으로 회원 상세 정보를 조회합니다.", "operationId": "ed81df83f2079b81d2ba41c97e79633f", "parameters": [ { "name": "user_no", "in": "path", "description": "회원 번호 (USER_NO)", "required": true, "schema": { "type": "integer", "example": 1 } }, { "name": "debug", "in": "query", "description": "디버그 모드 여부 (쿼리 확인용)", "required": false, "schema": { "type": "boolean", "example": true } } ], "responses": { "200": { "description": "조회 성공", "content": { "application/json": { "schema": { "properties": { "success": { "type": "boolean", "example": true }, "message": { "type": "string", "example": "회원 상세조회 성공" }, "data": { "properties": { "mb_num": { "type": "integer", "example": 1 }, "tn_num": { "type": "string", "example": null }, "mb_id": { "type": "string", "example": "admin" }, "mb_name": { "type": "string", "example": "권혁성" }, "mb_phone": { "type": "string", "example": "010-4820-9104" }, "mb_mail": { "type": "string", "example": "shine1324@gmail.com" }, "email_verified_at": { "type": "string", "format": "date-time", "example": null }, "mb_type": { "type": "string", "example": null }, "mb_level": { "type": "integer", "example": 1 }, "last_login": { "type": "string", "format": "date-time", "example": null }, "reg_date": { "type": "string", "format": "date-time", "example": "2025-07-16T09:28:41.000000Z" }, "created_at": { "type": "string", "format": "date-time", "example": null }, "updated_at": { "type": "string", "format": "date-time", "example": "2025-07-16T09:30:56.000000Z" } }, "type": "object" }, "query": { "type": "array", "items": { "type": "string", "example": "select * from `members` where `mb_num` = 1 limit 1" } } }, "type": "object" } } } }, "404": { "description": "회원 정보 없음" }, "401": { "description": "인증 실패" } }, "security": [ { "ApiKeyAuth": [] } ] } } }, "tags": [ { "name": "API Key 인증", "description": "API Key 인증" }, { "name": "Auth", "description": "Auth" }, { "name": "Member", "description": "Member" } ], "components": { "securitySchemes": { "ApiKeyAuth": { "type": "apiKey", "in": "header", "name": "X-API-KEY", "description": "API Key 인증: X-API-KEY: {API_KEY}}" } } } }