일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- dbContext
- ORM
- error
- Request
- vscode
- c#코딩의기술실전편
- React
- EFCore
- JavaScript
- intellij
- 명시적외래키
- Config
- mac
- 라도무스dvd
- 에스가든스냅
- LINQ
- minimalAPI
- 대전본식영상
- JSON
- extjs
- .net
- 코드프로그래머스
- ViewModel
- extraParams
- Store
- c#
- 상속
- lazy loading
- scanner
- 스냅잘찍음
- Today
- Total
ejyoo's 개발 노트
MinimalAPI에 대해서.. 본문
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)의 개발을 쉽고 빠르게 할 수 있도록 도와준다.
'BackEnd > .Net Core' 카테고리의 다른 글
EF Core Context 로 조회 시, 객체에 자동으로 연계되어 조회되는 이유 (0) | 2023.08.25 |
---|---|
EF Core DbContext 의 로딩방식 (0) | 2023.08.23 |
닷넷코어의 인증과 인가 (0) | 2023.07.20 |
명시적 외래키 작성할 때 virtual 타입을 쓰는 이유 (0) | 2023.06.21 |
Minimal API 만들기 (0) | 2023.06.02 |