From 1738878093913ba7f332007ba82e93159d57401f Mon Sep 17 00:00:00 2001 From: "Seonkyu.kim" Date: Wed, 4 Jun 2025 17:53:02 +0900 Subject: [PATCH] =?UTF-8?q?[=E2=9C=A8]=20=EC=84=B8=EC=85=98=20=EA=B4=80?= =?UTF-8?q?=EB=A6=AC=20API=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 웹 - 서버 데이터 관리 위한 세션 관리 API 추가 --- Program/Common/Model/APISetting.cs | 27 +++++++++------ Program/Controllers/V1/AppController.cs | 45 ++++++++++++++++++++++--- 2 files changed, 57 insertions(+), 15 deletions(-) diff --git a/Program/Common/Model/APISetting.cs b/Program/Common/Model/APISetting.cs index d1d4ac3..8417e9a 100644 --- a/Program/Common/Model/APISetting.cs +++ b/Program/Common/Model/APISetting.cs @@ -3,18 +3,23 @@ using System.ComponentModel.DataAnnotations.Schema; namespace Back.Program.Common.Model { - [Table("api_header")] - public class APIHeader - { - [Key] - public string specific_id { get; set; } - - public DateTime connect_date { get; set; } - public string h_key { get; set; } - public string h_value { get; set; } - } -} + [Table("api_header")] + public class APIHeader + { + [Key] + public string specific_id { get; set; } + public DateTime connect_date { get; set; } + public string h_key { get; set; } + public string h_value { get; set; } + } + + public class SessionData + { + public string key { get; set; } + public string value { get; set; } + } +} /* h_key : h_value iOS_AM_Connect_Key diff --git a/Program/Controllers/V1/AppController.cs b/Program/Controllers/V1/AppController.cs index e92a67a..09946d1 100644 --- a/Program/Controllers/V1/AppController.cs +++ b/Program/Controllers/V1/AppController.cs @@ -72,13 +72,50 @@ namespace Back.Program.Controllers.V1 var result = await _appService.RetryAccess(summary, refresh); return Ok(result); } - - [HttpGet("session")] + + [HttpGet("session/get")] [CustomOperation("세션 정보 읽어오기", "세션 정보를 읽어오는 동작 수행", "시스템")] public async Task GetSessionData(string key) { - var value = _sessionService.GetString(key); - return Ok(new {key = value}); + if (string.IsNullOrEmpty(key)) + { + return BadRequest(APIResponse.InvalidInputError()); + } + + var (success, value) = await _sessionService.GetString(key); + if (!success) + { + return BadRequest(APIResponse.InvalidInputError()); + } + + string summary = _repositoryService.ReadSummary(typeof(AppController), "GetSessionData"); + return Ok(APIResponse.Send("000", $"[{summary}], 정상", new { data = value })); + } + + [HttpPost("session/set")] + [CustomOperation("세션 정보 저장하기", "세션 정보에 저장하는 동작 수행", "시스템")] + public async Task SetSessionData([FromBody] SessionData[] requests) + { + if(requests == null || requests.Length == 0) + { + return BadRequest(APIResponse.InvalidInputError()); + } + + Console.WriteLine($"받은 세션 데이터: {JsonSerializer.Serialize(requests)}"); + + foreach(var request in requests) + { + Console.WriteLine($"세션 저장 시도 - key: {request.key}, value: {request.value}"); + var success = await _sessionService.SetString(request.key, request.value); + if (!success) + { + Console.WriteLine($"세션 저장 실패 - key: {request.key}"); + return BadRequest(APIResponse.InvalidInputError()); + } + Console.WriteLine($"세션 저장 성공 - key: {request.key}"); + } + + return Ok(APIResponse.Send("000", $"[세션 저장]: 정상", new { })); } } }