delete fortify, jetstream
This commit is contained in:
777
storage/api-docs/api-docs-v1.json
Executable file
777
storage/api-docs/api-docs-v1.json
Executable file
@@ -0,0 +1,777 @@
|
||||
{
|
||||
"openapi": "3.0.0",
|
||||
"info": {
|
||||
"title": "SAM API Documentation",
|
||||
"description": "===============================<br><strong>[공통 에러 응답 포맷]</strong><br>400: 필수 파라미터 누락<br>401: 인증 실패<br>403: 권한 없음<br>404: 존재하지 않는 URI 또는 데이터<br>405: 허용되지 않는 메서드<br>500: 서버 에러<br><br><strong>모든 에러 응답 예시:</strong><br>{<br> "success": false,<br> "message": "에러 메시지",<br> "data": null<br>}<br>===============================",
|
||||
"contact": {
|
||||
"email": "shine1324@gmail.com"
|
||||
},
|
||||
"version": "1.0.0"
|
||||
},
|
||||
"servers": [
|
||||
{
|
||||
"url": "https://api.5130.co.kr",
|
||||
"description": "SAM관리시스템 API 서버"
|
||||
}
|
||||
],
|
||||
"paths": {
|
||||
"/api/v1/debug-apikey": {
|
||||
"get": {
|
||||
"tags": [
|
||||
"API Key 인증"
|
||||
],
|
||||
"summary": "API Key 인증 확인",
|
||||
"operationId": "8d05f26a859e82207ba533ab88682ddf",
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "API Key 인증 성공"
|
||||
},
|
||||
"401": {
|
||||
"description": "인증 실패"
|
||||
}
|
||||
},
|
||||
"security": [
|
||||
{
|
||||
"ApiKeyAuth": []
|
||||
},
|
||||
{
|
||||
"BearerAuth": []
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"/api/v1/login": {
|
||||
"post": {
|
||||
"tags": [
|
||||
"Auth"
|
||||
],
|
||||
"summary": "회원 토큰 정보확인",
|
||||
"operationId": "3878a009ac5aef1ebe0e72b7716e24ac",
|
||||
"requestBody": {
|
||||
"required": true,
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"required": [
|
||||
"user_id",
|
||||
"user_pwd"
|
||||
],
|
||||
"properties": {
|
||||
"user_id": {
|
||||
"type": "string",
|
||||
"example": "test"
|
||||
},
|
||||
"user_pwd": {
|
||||
"type": "string",
|
||||
"example": "testpass"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "로그인 성공",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"properties": {
|
||||
"message": {
|
||||
"type": "string"
|
||||
},
|
||||
"user_token": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"401": {
|
||||
"description": "로그인 실패"
|
||||
}
|
||||
},
|
||||
"security": [
|
||||
{
|
||||
"ApiKeyAuth": []
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"/api/v1/logout": {
|
||||
"post": {
|
||||
"tags": [
|
||||
"Auth"
|
||||
],
|
||||
"summary": "로그아웃 (Access 및 Token 무효화)",
|
||||
"operationId": "39200ed8c17c34aa7af9a24f064e13a4",
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "로그아웃 성공"
|
||||
},
|
||||
"401": {
|
||||
"description": "인증 실패"
|
||||
}
|
||||
},
|
||||
"security": [
|
||||
{
|
||||
"ApiKeyAuth": []
|
||||
},
|
||||
{
|
||||
"BearerAuth": []
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"/api/v1/member/index": {
|
||||
"get": {
|
||||
"tags": [
|
||||
"Member"
|
||||
],
|
||||
"summary": "회원 목록 조회",
|
||||
"description": "회원 목록을 페이징 형태로 반환합니다.",
|
||||
"operationId": "9243d8df1b20c9552b21389ce84415ea",
|
||||
"parameters": [
|
||||
{
|
||||
"name": "page",
|
||||
"in": "query",
|
||||
"description": "페이지 번호 (기본값: 1)",
|
||||
"required": false,
|
||||
"schema": {
|
||||
"type": "integer",
|
||||
"example": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "size",
|
||||
"in": "query",
|
||||
"description": "페이지당 항목 수 (기본값: 20)",
|
||||
"required": false,
|
||||
"schema": {
|
||||
"type": "integer",
|
||||
"example": 20
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "회원 목록 조회 성공",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"properties": {
|
||||
"success": {
|
||||
"type": "boolean",
|
||||
"example": true
|
||||
},
|
||||
"message": {
|
||||
"type": "string",
|
||||
"example": "회원목록 조회 성공"
|
||||
},
|
||||
"data": {
|
||||
"properties": {
|
||||
"current_page": {
|
||||
"type": "integer",
|
||||
"example": 1
|
||||
},
|
||||
"data": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "integer",
|
||||
"example": 1
|
||||
},
|
||||
"user_id": {
|
||||
"type": "string",
|
||||
"example": "hamss"
|
||||
},
|
||||
"phone": {
|
||||
"type": "string",
|
||||
"example": "010-4820-9104"
|
||||
},
|
||||
"options": {
|
||||
"type": "string",
|
||||
"example": null,
|
||||
"nullable": true
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"example": "권혁성"
|
||||
},
|
||||
"email": {
|
||||
"type": "string",
|
||||
"example": "shine1324@gmail.com"
|
||||
},
|
||||
"email_verified_at": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"example": null,
|
||||
"nullable": true
|
||||
},
|
||||
"last_login_at": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"example": null,
|
||||
"nullable": true
|
||||
},
|
||||
"current_team_id": {
|
||||
"type": "integer",
|
||||
"example": null,
|
||||
"nullable": true
|
||||
},
|
||||
"profile_photo_path": {
|
||||
"type": "string",
|
||||
"example": null,
|
||||
"nullable": true
|
||||
},
|
||||
"created_at": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"example": "2025-07-16 18:28:41"
|
||||
},
|
||||
"updated_at": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"example": "2025-07-25 23:13:06"
|
||||
},
|
||||
"deleted_at": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"example": null,
|
||||
"nullable": true
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
},
|
||||
"first_page_url": {
|
||||
"type": "string",
|
||||
"example": "http://api.sam.kr/api/v1/member/index?page=1"
|
||||
},
|
||||
"from": {
|
||||
"type": "integer",
|
||||
"example": 1
|
||||
},
|
||||
"last_page": {
|
||||
"type": "integer",
|
||||
"example": 1
|
||||
},
|
||||
"last_page_url": {
|
||||
"type": "string",
|
||||
"example": "http://api.sam.kr/api/v1/member/index?page=1"
|
||||
},
|
||||
"links": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"properties": {
|
||||
"url": {
|
||||
"type": "string",
|
||||
"example": null,
|
||||
"nullable": true
|
||||
},
|
||||
"label": {
|
||||
"type": "string",
|
||||
"example": "« Previous"
|
||||
},
|
||||
"active": {
|
||||
"type": "boolean",
|
||||
"example": false
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
},
|
||||
"next_page_url": {
|
||||
"type": "string",
|
||||
"example": null,
|
||||
"nullable": true
|
||||
},
|
||||
"path": {
|
||||
"type": "string",
|
||||
"example": "http://api.sam.kr/api/v1/member/index"
|
||||
},
|
||||
"per_page": {
|
||||
"type": "integer",
|
||||
"example": 20
|
||||
},
|
||||
"prev_page_url": {
|
||||
"type": "string",
|
||||
"example": null,
|
||||
"nullable": true
|
||||
},
|
||||
"to": {
|
||||
"type": "integer",
|
||||
"example": 3
|
||||
},
|
||||
"total": {
|
||||
"type": "integer",
|
||||
"example": 3
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"security": [
|
||||
{
|
||||
"ApiKeyAuth": []
|
||||
},
|
||||
{
|
||||
"BearerAuth": []
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"/api/v1/member/show/{user_no}": {
|
||||
"get": {
|
||||
"tags": [
|
||||
"Member"
|
||||
],
|
||||
"summary": "회원 상세조회",
|
||||
"description": "user_no 기준으로 회원 상세 정보를 조회합니다.",
|
||||
"operationId": "b4c822915531828ea5f3a50d5112ef26",
|
||||
"parameters": [
|
||||
{
|
||||
"name": "user_no",
|
||||
"in": "path",
|
||||
"description": "회원 번호 (USER_NO)",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"type": "integer",
|
||||
"example": 1
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "회원 상세조회 성공",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"properties": {
|
||||
"success": {
|
||||
"type": "boolean",
|
||||
"example": true
|
||||
},
|
||||
"message": {
|
||||
"type": "string",
|
||||
"example": "회원 상세조회 성공"
|
||||
},
|
||||
"data": {
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "integer",
|
||||
"example": 1
|
||||
},
|
||||
"user_id": {
|
||||
"type": "string",
|
||||
"example": "hamss"
|
||||
},
|
||||
"phone": {
|
||||
"type": "string",
|
||||
"example": "010-4820-9104"
|
||||
},
|
||||
"options": {
|
||||
"type": "string",
|
||||
"example": null,
|
||||
"nullable": true
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"example": "권혁성"
|
||||
},
|
||||
"email": {
|
||||
"type": "string",
|
||||
"example": "shine1324@gmail.com"
|
||||
},
|
||||
"email_verified_at": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"example": null,
|
||||
"nullable": true
|
||||
},
|
||||
"last_login_at": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"example": null,
|
||||
"nullable": true
|
||||
},
|
||||
"current_team_id": {
|
||||
"type": "integer",
|
||||
"example": null,
|
||||
"nullable": true
|
||||
},
|
||||
"profile_photo_path": {
|
||||
"type": "string",
|
||||
"example": null,
|
||||
"nullable": true
|
||||
},
|
||||
"created_at": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"example": "2025-07-16 18:28:41"
|
||||
},
|
||||
"updated_at": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"example": "2025-07-25 23:13:06"
|
||||
},
|
||||
"deleted_at": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"example": null,
|
||||
"nullable": true
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"401": {
|
||||
"description": "인증 실패"
|
||||
},
|
||||
"404": {
|
||||
"description": "회원 정보 없음"
|
||||
}
|
||||
},
|
||||
"security": [
|
||||
{
|
||||
"ApiKeyAuth": []
|
||||
},
|
||||
{
|
||||
"BearerAuth": []
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"/api/v1/member/me": {
|
||||
"get": {
|
||||
"tags": [
|
||||
"Member"
|
||||
],
|
||||
"summary": "내 정보 조회",
|
||||
"description": "내정보와 테넌트 정보를 전달 합니다.",
|
||||
"operationId": "0c641be8a4e4ab5e1c2db29989b219ce",
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "나의 정보 조회 성공",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"properties": {
|
||||
"success": {
|
||||
"type": "boolean",
|
||||
"example": true
|
||||
},
|
||||
"message": {
|
||||
"type": "string",
|
||||
"example": "나의 정보 조회 성공"
|
||||
},
|
||||
"data": {
|
||||
"properties": {
|
||||
"user": {
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "integer",
|
||||
"example": 3
|
||||
},
|
||||
"user_id": {
|
||||
"type": "string",
|
||||
"example": "test"
|
||||
},
|
||||
"phone": {
|
||||
"type": "string",
|
||||
"example": "010-1234-5678"
|
||||
},
|
||||
"options": {
|
||||
"type": "string",
|
||||
"example": null,
|
||||
"nullable": true
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"example": "테스트"
|
||||
},
|
||||
"email": {
|
||||
"type": "string",
|
||||
"example": "test@5130.co.kr"
|
||||
},
|
||||
"email_verified_at": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"example": null,
|
||||
"nullable": true
|
||||
},
|
||||
"last_login_at": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"example": null,
|
||||
"nullable": true
|
||||
},
|
||||
"current_team_id": {
|
||||
"type": "integer",
|
||||
"example": null,
|
||||
"nullable": true
|
||||
},
|
||||
"profile_photo_path": {
|
||||
"type": "string",
|
||||
"example": null,
|
||||
"nullable": true
|
||||
},
|
||||
"created_at": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"example": "2025-07-17 13:19:37"
|
||||
},
|
||||
"updated_at": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"example": "2025-07-26 15:51:14"
|
||||
},
|
||||
"deleted_at": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"example": null,
|
||||
"nullable": true
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
},
|
||||
"tenant": {
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "integer",
|
||||
"example": 1
|
||||
},
|
||||
"company_name": {
|
||||
"type": "string",
|
||||
"example": "(주)경동기업"
|
||||
},
|
||||
"code": {
|
||||
"type": "string",
|
||||
"example": "KDCOM"
|
||||
},
|
||||
"email": {
|
||||
"type": "string",
|
||||
"example": "kd5130@naver.com"
|
||||
},
|
||||
"phone": {
|
||||
"type": "string",
|
||||
"example": "01083935130"
|
||||
},
|
||||
"address": {
|
||||
"type": "string",
|
||||
"example": "경기도 김포시 통진읍 옹정로 45-22"
|
||||
},
|
||||
"business_num": {
|
||||
"type": "string",
|
||||
"example": "1398700333"
|
||||
},
|
||||
"corp_reg_no": {
|
||||
"type": "string",
|
||||
"example": null,
|
||||
"nullable": true
|
||||
},
|
||||
"ceo_name": {
|
||||
"type": "string",
|
||||
"example": "이경호"
|
||||
},
|
||||
"homepage": {
|
||||
"type": "string",
|
||||
"example": null,
|
||||
"nullable": true
|
||||
},
|
||||
"fax": {
|
||||
"type": "string",
|
||||
"example": null,
|
||||
"nullable": true
|
||||
},
|
||||
"logo": {
|
||||
"type": "string",
|
||||
"example": null,
|
||||
"nullable": true
|
||||
},
|
||||
"admin_memo": {
|
||||
"type": "string",
|
||||
"example": null,
|
||||
"nullable": true
|
||||
},
|
||||
"options": {
|
||||
"type": "string",
|
||||
"example": null,
|
||||
"nullable": true
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"401": {
|
||||
"description": "인증 실패 (헤더 누락, 유효하지 않은 토큰/키 등)"
|
||||
}
|
||||
},
|
||||
"security": [
|
||||
{
|
||||
"ApiKeyAuth": []
|
||||
},
|
||||
{
|
||||
"BearerAuth": []
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"/api/v1/product/category": {
|
||||
"get": {
|
||||
"tags": [
|
||||
"Product"
|
||||
],
|
||||
"summary": "제품 카테고리 목록 조회",
|
||||
"description": "제품 카테고리(최상위, parent_id=null) 리스트를 반환합니다.",
|
||||
"operationId": "ae018aa8eec41762f28513ae1aecebfc",
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "카테고리 목록 조회 성공",
|
||||
"content": {
|
||||
"application/json": {
|
||||
"schema": {
|
||||
"properties": {
|
||||
"status": {
|
||||
"type": "string",
|
||||
"example": "success"
|
||||
},
|
||||
"message": {
|
||||
"type": "string",
|
||||
"example": "get 성공"
|
||||
},
|
||||
"data": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "integer",
|
||||
"example": 4
|
||||
},
|
||||
"code_group": {
|
||||
"type": "string",
|
||||
"example": "category"
|
||||
},
|
||||
"code": {
|
||||
"type": "string",
|
||||
"example": "BP"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"example": "절곡판"
|
||||
},
|
||||
"parent_id": {
|
||||
"type": "integer",
|
||||
"example": null
|
||||
},
|
||||
"attributes": {
|
||||
"type": "string",
|
||||
"example": "[{...}]"
|
||||
},
|
||||
"description": {
|
||||
"type": "string",
|
||||
"example": "절곡판"
|
||||
},
|
||||
"is_active": {
|
||||
"type": "integer",
|
||||
"example": 1
|
||||
},
|
||||
"sort_order": {
|
||||
"type": "integer",
|
||||
"example": 10
|
||||
},
|
||||
"created_at": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"example": "2025-07-23T09:00:00Z"
|
||||
},
|
||||
"updated_at": {
|
||||
"type": "string",
|
||||
"format": "date-time",
|
||||
"example": "2025-07-23T09:00:00Z"
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
},
|
||||
"type": "object"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"401": {
|
||||
"description": "인증 실패"
|
||||
},
|
||||
"500": {
|
||||
"description": "서버 에러"
|
||||
}
|
||||
},
|
||||
"security": [
|
||||
{
|
||||
"ApiKeyAuth": []
|
||||
},
|
||||
{
|
||||
"BearerAuth": []
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"components": {
|
||||
"securitySchemes": {
|
||||
"ApiKeyAuth": {
|
||||
"type": "apiKey",
|
||||
"in": "header",
|
||||
"name": "X-API-KEY",
|
||||
"description": "API Key 인증: X-API-KEY: {API_KEY}"
|
||||
},
|
||||
"BearerAuth": {
|
||||
"type": "http",
|
||||
"bearerFormat": "JWT",
|
||||
"scheme": "bearer"
|
||||
}
|
||||
}
|
||||
},
|
||||
"tags": [
|
||||
{
|
||||
"name": "API Key 인증",
|
||||
"description": "API Key 인증"
|
||||
},
|
||||
{
|
||||
"name": "Auth",
|
||||
"description": "Auth"
|
||||
},
|
||||
{
|
||||
"name": "Member",
|
||||
"description": "Member"
|
||||
},
|
||||
{
|
||||
"name": "Product",
|
||||
"description": "Product"
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user