From a9cdf004e3a725d2bd9c8dd8dcd494d6e8188804 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B6=8C=ED=98=81=EC=84=B1?= Date: Tue, 27 Jan 2026 15:24:35 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EA=B2=8C=EC=8B=9C=ED=8C=90=20=EC=BD=94?= =?UTF-8?q?=EB=93=9C=20=EA=B8=B0=EB=B0=98=20=EC=A1=B0=ED=9A=8C=20=EB=9D=BC?= =?UTF-8?q?=EC=9A=B0=ED=8A=B8=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - BoardController에 showByCode(string $code) 메서드 추가 - GET /api/v1/boards/{code} 라우트 등록 - 기존 ID 기반 조회와 코드 기반 조회 분리 Co-Authored-By: Claude --- app/Http/Controllers/Api/V1/BoardController.php | 16 ++++++++++++++++ routes/api.php | 3 +++ 2 files changed, 19 insertions(+) diff --git a/app/Http/Controllers/Api/V1/BoardController.php b/app/Http/Controllers/Api/V1/BoardController.php index 64d3d41..0f054d0 100644 --- a/app/Http/Controllers/Api/V1/BoardController.php +++ b/app/Http/Controllers/Api/V1/BoardController.php @@ -106,6 +106,22 @@ public function tenantBoards() }, __('message.fetched')); } + /** + * 게시판 상세 조회 (코드 기반) + */ + public function showByCode(string $code) + { + return ApiResponse::handle(function () use ($code) { + $board = $this->boardService->getBoardByCode($code); + + if (! $board) { + abort(404, __('error.board.not_found')); + } + + return $board; + }, __('message.fetched')); + } + /** * 게시판 필드 목록 조회 */ diff --git a/routes/api.php b/routes/api.php index eba164e..6c9fb58 100644 --- a/routes/api.php +++ b/routes/api.php @@ -1462,6 +1462,9 @@ Route::post('/{code}/posts/{postId}/comments', [PostController::class, 'storeComment'])->name('v1.boards.posts.comments.store'); // 댓글 작성 Route::put('/{code}/posts/{postId}/comments/{commentId}', [PostController::class, 'updateComment'])->name('v1.boards.posts.comments.update'); // 댓글 수정 Route::delete('/{code}/posts/{postId}/comments/{commentId}', [PostController::class, 'destroyComment'])->name('v1.boards.posts.comments.destroy'); // 댓글 삭제 + + // 게시판 상세 (코드 기반) - 가장 마지막에 배치 (catch-all) + Route::get('/{code}', [BoardController::class, 'showByCode'])->name('v1.boards.show_by_code'); }); // 게시글 API (사용자 중심)