์ ๋ Asp.net ํต์ฌ ์น API ํ๋ก์ ํธ์ธ ํ๋ก์ ํธ์์ ์์ ์ค์ ๋๋ค. ๋๋ถ๋ถ์ ํ๋ก์ ํธ๋ Asp.net MVC ๋ฐ Core MVC์์ ์ํํ์ง๋ง Core Web API๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ์ ํ๋ก์ ํธ๋ฅผ ์ํํ ๊ฒ์ ๋๋ค. Core MVC์๋ Admin ๋ถ๋ถ ๋ฑ์ ์ํ Areas๋ฅผ ์์ฑํ ์ ์๋ Areas ๊ฐ๋ ์ด ์์ต๋๋ค. ํ์ง๋ง Asp.net Core Web API ํ๋ก์ ํธ์์ Areas๋ฅผ ์ฌ์ฉํ ์ ์๋์ง ์๊ณ ์ถ์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด๋ป๊ฒ ํ ์ ์์ต๋๊น? ๋ ์ข์ ๋ฐฉ๋ฒ์ด ์๊ฐ๋์๋ฉด ๋ง์ํด์ฃผ์ธ์.
API ์ปจํธ๋กค๋ฌ๋ฅผ ์์ญ์ ๋ฐฐ์นํ์ฌ ๊ทธ๋ฃนํํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ปจํธ๋กค๋ฌ์ ๊ฒฝ๋ก๋ฅผ ์ ๊ณตํ๋ฏ๋ก ๋ค๋ฅธ ๊ฒฝ๋ก๋ฅผ ์ง์ ์์ฑํ ์ ์์ต๋๋ค.
[Route("api/myarea/v1/[controller]")]
๋ด ApiController๋ฅผ ๋ด ์์ญ ์๋์ ๋ฃ์ด ๊ตฌ์กฐ๊ฐ ์๋์ ๊ฐ์ด ๋ณด์ด๋๋ก ์๋ํ ๊ฒ๊ณผ ๋์ผํ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
๋ด๋ถ์ API ์ปจํธ๋กค๋ฌ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์์ญ/GL/์ปจํธ๋กค๋ฌ
[Area("GL")]
[Route("api/[controller]")]
[ApiController]
[HttpGet]
public IActionResult Get()
{
return Ok("api controller");
}
ํ์ง๋ง ๋ด URL์ ์ก์ธ์คํ ๋
http://localhost :48357/GL/Api/Get
๋๋
http://localhost :48357/Api/GL/Get
๋๋
http://localhost :48357/Api/Get
๋๋ ์ป๋ค
์ํ ์ฝ๋: 404; ์ฐพ์ ์ ์์
๋ค์์ ์ฝ๋์ ๋๋ค.
Startup.cs
routes.MapAreaRoute(
name: "AreaGL",
areaName: "GL",
template: "GL/{controller=Home}/{action=Index}/{id?}"
);
์ด ๋ฌธ์ ์ ๋ํด ์ ๋ฅผ ๋์์ฃผ์ธ์. ์ฌ๊ธฐ์ ์ ๊ฐ ๋ญ ์๋ชปํ๊ณ ์์ต๋๊น?
๋ฌธ์ํด ์ฃผ์
์ ๊ฐ์ฌํฉ๋๋ค. @farhadibehnam.
์ปจํธ๋กค๋ฌ๊ฐ ์์ญ์ ์๋๋ก ํ๋ ค๋ฉด https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/areas? ์ ์ค๋ช
๋ ๋๋ก ํน์ฑ ๊ฒฝ๋ก์ {area:exists}
๊ฒฝ๋ก ์ ์ฝ ์กฐ๊ฑด์ ์ ์ฉํด์ผ ํฉ๋๋ค. ๋ณด๊ธฐ=aspnetcore-2.2.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
API ์ปจํธ๋กค๋ฌ๋ฅผ ์์ญ์ ๋ฐฐ์นํ์ฌ ๊ทธ๋ฃนํํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ปจํธ๋กค๋ฌ์ ๊ฒฝ๋ก๋ฅผ ์ ๊ณตํ๋ฏ๋ก ๋ค๋ฅธ ๊ฒฝ๋ก๋ฅผ ์ง์ ์์ฑํ ์ ์์ต๋๋ค.
[Route("api/myarea/v1/[controller]")]