1. 컨트롤러 생성

컨트롤러는 IDE에서 제공하는 방식을 사용하여 생성하는게 속 편하다…

컨트롤러는 다음과 같은 조건들을 충족해야 한다.

  1. 컨트롤러 접미사(***Controller)가 있어야 한다.
  2. **ControllerBase / ApiController**를 상속 받아야 한다
  3. 컨트롤러의 메서드(액션 메서드)는 정적함수일 수 없다
  4. 라우팅되는 컨트롤러의 메서드는 오버로드 할 수 없다.
  5. 게임서버는 HTML을 보낼 이유가 없으므로, Web API를 사용한다

컨트롤러의 메서드 들은 주로 요청의 엔드 포인트로 동작한다.

요청을 컨트롤러의 특정 메서드로 연결시키는 방식을 라우팅이라고 한다.

2. 라우팅 및 관련 용어

Asp.net에서 라우팅(Routing)은 들어오는 HTTP 요청을 해당하는 앱의 실행 가능한 엔드포인트로 연결하는 역할을 담당합니다. 즉, 라우팅은 들어오는 요청을 알맞은 처리 로직으로 매핑해주는 역할을 합니다.

3. 라우팅의 방법

3.1. 규칙 기반 라우팅 방식

// 라우팅을 활성화하는 미들웨어
app.UseRouting();
...
// 라우팅을 위한 엔드포인트 설정
app.UseEndpoints(endpoints =>
{
		//컨트롤러의 라우팅 경로 설정. 근데 기본적으로 되어 있는 것도 있음.
    endpoints.MapControllerRoute(
        name: "default",
        pattern: "{controller}/{action}/{id?}",
        defaults: new { controller = "Home", action = "Index" });
		// 루트 경로로 get요청을 보내면 호출할 콜백함수를 람다식을 준다
    endpoints.MapGet("/", async context =>
    {
				// 요청 처리를 위한 콜백 함수
        await context.Response.WriteAsync("Hello, World!");
    });
});

program.cs의 UseEndpoint()를 이용한 라우팅 방식. 엔드포인트 메타데이터 설정 및 URL패턴을 이용해 어떤 컨트롤러의 액션에 매핑할지 정한다.