Index: ChapterX.API/Controllers/CommentsController.cs
===================================================================
--- ChapterX.API/Controllers/CommentsController.cs	(revision 877c13c3dd0934c1d31da7988d0d2c2c5925ed55)
+++ ChapterX.API/Controllers/CommentsController.cs	(revision a7550ca4790b7d1a7515a4a688b871e32313d8bf)
@@ -1,4 +1,5 @@
 using ChapterX.Application.Comment.Commands;
 using ChapterX.Application.Comment.Queries;
+using ChapterX.Domain.Repositories;
 using MediatR;
 using Microsoft.AspNetCore.Authorization;
@@ -13,10 +14,29 @@
     {
         private readonly IMediator _mediator;
+        private readonly ICommentRepository _commentRepository;
         private readonly ILogger<CommentsController> _logger;
 
-        public CommentsController(IMediator mediator, ILogger<CommentsController> logger)
+        public CommentsController(IMediator mediator, ICommentRepository commentRepository, ILogger<CommentsController> logger)
         {
             _mediator = mediator;
+            _commentRepository = commentRepository;
             _logger = logger;
+        }
+
+        [HttpGet("story/{storyId:int}")]
+        [AllowAnonymous]
+        public async Task<ActionResult> GetByStory(int storyId)
+        {
+            var comments = await _commentRepository.GetByStoryIdAsync(storyId);
+            var result = comments.Select(c => new
+            {
+                id = c.Id,
+                content = c.Content,
+                userId = c.UserId,
+                storyId = c.StoryId,
+                username = c.User?.Username ?? "",
+                createdAt = c.CreatedAt,
+            });
+            return Ok(result);
         }
 
