✅ WebAPI란?

  • MVC 패턴: Model + View + Controller
  • Razor Pages: Model + View + ViewModel
  • WebAPI: Model + Controller (➡ View 없음!)

WebAPI는 UI를 포함하지 않고 데이터만 응답하는 구조입니다. 대표적으로 JSON 형식의 데이터를 반환합니다.

📌 WebAPI를 사용하는 이유

  • UI를 렌더링하지 않고 데이터만 주고받을 때 사용합니다.
  • 예: 유니티 클라이언트와 통신할 때 서버는 UI가 필요 없습니다. 유니티가 자체 UI를 그립니다.
  • 따라서 WebAPI는 게임 서버, 모바일 앱 백엔드, IoT, 대형 시스템에서 서버-클라이언트 분리 아키텍처로 많이 사용됩니다.

🛠️ WebAPI 구현 실습 - HelloEmpty 프로젝트

1. 기존 폴더 정리

  • Razor Pages 실습을 위해 만들었던 Pages 폴더 삭제
  • Controllers 폴더 생성

2. 모델 클래스 작성 (HelloMessage.cs)

namespace HelloEmpty.Models
{
    public class HelloMessage
    {
        public string Message { get; set; }
    }
}

3. WebAPI 컨트롤러 작성 (ValuesController.cs)

using HelloEmpty.Models;
using Microsoft.AspNetCore.Mvc;

namespace HelloEmpty.Controllers
{
    [Route("api/[controller]")]
    [ApiController]
    public class ValuesController : ControllerBase
    {
        [HttpGet]
        public List<HelloMessage> Get()
        {
            return new List<HelloMessage>
            {
                new HelloMessage { Message = "Hello Web API 1" },
                new HelloMessage { Message = "Hello Web API 2" },
                new HelloMessage { Message = "Hello Web API 3" }
            };
        }
    }
}

[Route("api/[controller]")] 는 자동으로 api/Values 라는 경로를 만들어줍니다.

[ApiController] 는 WebAPI 전용 기능을 활성화합니다 (자동 Model Binding, Validation 등).


4. Program.cs 설정 (NET 6~8 기준)

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddControllers();
builder.Services.AddEndpointsApiExplorer(); // Swagger 미사용 시에도 권장

var app = builder.Build();

if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Home/Error");
    app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();

app.MapControllers(); // WebAPI 활성화

app.Run();

이전 MVC/RazorPage 설정은 모두 주석 처리!


5. 실행 확인

  1. 브라우저에서 https://localhost:xxxx 만 입력하면 404 발생 (뷰 없음)
  2. 주소 뒤에 /api/values 입력
    👉 https://localhost:xxxx/api/values
[
  {"message":"Hello Web API 1"},
  {"message":"Hello Web API 2"},
  {"message":"Hello Web API 3"}
]

개발자 도구 (F12) → 네트워크 탭에서도 JSON 응답 확인 가능


🌐 WebAPI의 특징 요약

항목설명
UI(View)없음
응답 형식JSON
컨트롤러 반환데이터 (List, 객체 등)
주요 사용처클라이언트/서버 통신 (모바일, 유니티, SPA 등)
확장성높음. 다양한 클라이언트와 연동 가능

🔍 MVC / Razor / WebAPI 차이 요약

분류View 사용Routing 방식Controller 종류
MVC사용함MapControllerRouteController
Razor Pages사용함MapRazorPagesPageModel
Web API사용 안함MapControllersControllerBase

profile
李家네_공부방

0개의 댓글