ejyoo's 개발 노트

MinimalAPI에 대해서.. 본문

BackEnd/.Net Core

MinimalAPI에 대해서..

ejyoovV 2023. 6. 21. 22:08

C# 의 Minimal API 는 .NET 6.0의 기능으로

API 엔트포인트를 만들 때 필요한 준비 작업을 최소화하고 개발자의 생산성을 향상 시키는 것을 목표로 한다.

주로 작은 서비스나 단일 페이지 애플리케이션 (Single Page Application, SPA) 나

마이크로 서비스 아키텍처에서 사용된다.

 

C#의 Minimal API 는 주요 핵심 개념이 있다.

1. 익명 람다(Lambda) 함수

  Minimal API 는 익명 람다 함수를 사용하여 API 끝점(endpoints) 를 정의하고

  이로인해 간결하게 API 를 작성할 수 있다.

  이러한 함수는 일반적으로 app.Map[HTTP 메소드]의 형태로 작성된다.

  예를 들어, HTTP GET 요청을 처리하는 API 끝점은 app.MapGet 함수를 사용하여 작성된다.

2. 응답 및 요청 처리

  Minimal API 는 Results 클래스를 통해 간결하게 응답을 처리할 수 있도록 한다.

  예를 들어, Result.OK() 를 사용하여 200 OK 응답을 보낼 수 있으며,

  Results.NotFound() 를 사용하여 404 NotFound 응답을 보낼 수 있다.

3. Dependency Injection (DI)

  .NET Core의 Minimal API는 Dependency Injection 패턴을 사용하여

  클래스 또는 컴포넌트 사이의 종속성을 관리한다.

  이를 통해 코드의 재사용성과 테스트 용이성을 향상시킬 수 있다.

 

MinimalAPI 예시

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

app.MapGet("/", () => "Hello World!");

app.MapGet("/todos/{id}", (int id) =>
{
    var todo = FindTodoById(id); // 이것은 데이터베이스에서 Todo 객체를 가져오는 방법일 수 있음.
    if (todo is null)
    {
        return Results.NotFound();
    }
    return Results.Ok(todo);
});

app.Run();

이 코드는 두 개의 HTTP GET 끝점을 정의한다. 

(끝점을 엔드포인트라고 하겠다.)

첫번째 엔드포인트는 루트 URL ('/')에서 'Hello World' 라는 메시지를 반환한다.

두번째 엔드포인트은 특정 ID 로 Todo 항목을 찾아 반환하고,

해당 항목을 찾지 못하면 404 NotFound 응답을 보낸다.

 

이러한 심플한 API 엔드포인트 작성 방식은

작은 서비스나 단일 페이지 애플리케이션 (SPA)의 개발을 쉽고 빠르게 할 수 있도록 도와준다.