Asp.Net Core MVC 템플릿으로 만들고 View 없이 API 서버로 사용하면 문제가 있을가요?

뷰가 없는 Web Api 템플릿이 별도로 있긴한데, 딱 한 곳 많아야 두 곳 정도에서는 뷰가 필요할 것 같기도해서요. 그런데 따로 따로 둘 필요까지 있을까 싶어서 그런데요.
혹시 MVC를 백엔드 서버로만 사용하는 경우도 있나요? 아니면 아무리 사소한거라도 분리를 하는게 맞을가요?

이런 질문을 한 이유는 현재 앱에서 회원 가입 시 입력 한 이메일로 인증 링크를 보내서 http://host/api/controller/verify?token=ddkdiedkdiekdeiekdikei 이런식으로 보내서 해당 링크를 클릭하면 인증을 되게 구현을 해보려고 하는데요. 이 때 해당 링크를 누르면 뭐 인증이 완료 됐다는 페이지를 띄우고 싶어서 다른 곳에서는 View가 필요 없어도 해당 한 곳에서만 View가 있으면 좋겠다 싶어서 여쭤봤습니다.

저정도면 굳이 mvc 템플릿으로 세팅 안하고 그냥 저 부분만 뷰를 리턴 시켜주면 될 것 같습니다

아하, 답변 감사합니다!

wep api 프로젝트에서 html text 를 반환하기, 혹은
mvc 에서 api controller 혹은 minimal api 를 추가하기 등, 어떤 것을 사용해도 상관이 없습니다.

일괄적인 클래스 관리를 위해서는 mvc 에서 api 컨트롤러 클래스를 정의하는 게 좋을 것 같기는 합니다.

[ApiController]
[Route("[controller]")]
public class WeatherForecastController : ControllerBase

참고로, API 컨트롤러는 보다 시피 ControllerBase를 파생한 것이고,
MVC 컨트롤러는 Controller 를 파생한 것인데, Controller 는 ControllerBase 를 파생합니다.

즉, MVC 컨트롤러는 특수한(뷰를 응답하는) API 컨트롤러라고 볼 수 있는데, 이는 MVC 프로젝트에는 API controller 를 사용하기 위한 제반 자원이 이미 구비되어 있다는 의미입니다.

3 Likes

.오!, 바로 이해 했습니다.
상세한 설명 감사합니다!

1 Like