OpenApi ๋ ๋ง ๊ทธ๋๋ก ๊ณต๊ฐ api ์๋น์ค์ ์ ์ ํฉ๋๋ค.
๊ทธ๋ฌ๋ฏ๋ก, ๊ณต๊ฐ Api ๋ฅผ ์์ฑํ๋ ๊ฒฝ์ฐ๊ฐ ์๋๋ผ๋ฉด, ๋ฐฐํฌ ์ฝ๋์์ ์ง์์ผ ํฉ๋๋ค.
if (builder.Environment.IsDevelopment())
{
builder.Services.AddOpenApi();
}
// ...
var app = builder.Build();
if (app.Environment.IsDevelopment())
{
app.MapOpenApi();
};
// ...
๊ทธ๋ผ์๋ ๊ฐ๋ฐ์์๊ฒ ์ ์ฉํ ๋ถ๋ถ์ด ์์ต๋๋ค.
ํ
์คํ
Api์ ๋์์ ํ
์คํธ ํ ๋, PostMan ๊ณผ ๊ฐ์ ์ ๋ฌธ ํด๋ผ์ด์ธํธ๋ฅผ ์ฌ์ฉํ ์๋ ์๊ณ , .http ํ์ผ๋ ์ฌ์ฉํ ์ ์๋๋ฐ, Swagger Ui ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์์ด ๊ฐ์ฅ ๊ฐํธํ๋ค๊ณ ํ ์ ์์ต๋๋ค.
.Net 8.0 ๊น์ง๋ Swashbuckle ์ด ๊ณต์ Swagger Ui ๋๊ตฌ์๋๋ฐ, .Net 9.0 ๋ถํฐ๋ ๊ธฐ์กด์ Swashbuckle ๋์ , SwaggerUI ํจํค์ง๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฉ๋๋ค.
์ด ํจํค์ง ๋ฟ๋ง ์๋๋ผ, ๋ค๋ฅธ UI ๋๊ตฌ๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํด๋ผ์ด์ธํธ ์์ฑ
OpenApi ๋ฌธ์์ ๋ค๋ฅธ ํจ์ฉ์ ํด๋ผ์ด์ธํธ๋ฅผ ํ์คํํ ์ ์๋ค๋ ์ ์
๋๋ค.
๋ท๋ท์์๋ NSwag ๋ฅผ ์ฌ์ฉํ๋ฉด, OpenApi ๋ฌธ์๋ฅผ ๋ฐํ์ผ๋ก Api ์ ์ ๊ทผํ ์ ์๋ ์๋น์ค ๊ฐ์ฒด์ ๊ด๋ จ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์๋์ผ๋ก ์์ฑํ ์ ์์ต๋๋ค.
์ด๋ EF Core ์ Db-First ์ ๊ทผ๋ฒ๊ณผ ์ ์ฌํ ๋ฐฉ์์
๋๋ค.
nodejs ์๋ฒ๋ kestrel ์๋ฒ๋ , openapi ๋ฌธ์๋ง ์ ๊ณตํด์ฃผ๋ฉด, ์ ๋๊ตฌ๋ก ๋ท๋ท ๋๋ ๋ค๋ฅธ ์ธ์ด์ ํด๋ผ์ด์ธํธ ๊ฐ์ฒด๋ฅผ ๋ง๋ค ์ ์๋ ๊ฒ์ด์ฃ .
์ง์ ์๋ํด ๋ดค๋๋ฐ, ์์คํ
์ ๋ชจ๋ ์ฑ์ด ๋ท๋ท์ผ๋ก ์์ฑ๋ ๊ฒฝ์ฐ์๋, ์์ฑ๋ ๊ฐ์ฒด๋ค์ด ๋ญ๊ฐ ๋ถํธํ์ง๋ง, ๋ค๋ฅธ ์ธ์ด๋ก ์์ฑ๋ api ์ ์ ๊ทผํ๋ ํด๋ผ์ด์ธํธ๋ฅผ ๋ท๋ท์ผ๋ก ์์ฑํ๋ ๊ฒฝ์ฐ๋ผ๋ฉด, ์ฝ๋๋์ ์๋นํ ๋ง์ด ์ค์ฌ์ฃผ๋ ์ด์ ์ด ์์ต๋๋ค.
์ฌ๊ฒฌ์ผ๋ก๋, ๋น๊ณต๊ฐ api ๋ฅผ ์์ฑํ๋ ๊ฒฝ์ฐ๋ผ๋, open api ๋ฌธ์๋ฅผ ๋ณ๋์ ํ์ผ๋ก ์์ฑํด๋๋ ํธ์ด ๋์ค์ ๋์์ด ๋ ๊ฒ ๊ฐ์ต๋๋ค.
์์คํ
์ด ์ฑ๊ณต์ ์ด๋ฉด, ๋๊ตฐ๊ฐ๋ api ์ ์ ๊ทผ์ ์ํ ๊ฒ์ด๊ณ , ๊ทธ ๊ฒฝ์ฐ์ ๋ง๋ค์ด ๋ open api ๋ฌธ์๋ฅผ ์ ๊ณตํ๋ฉด, ํด๋ผ์ด์ธํธ๋ฅผ ์์ฑํ๋ ์ธก์ ์
๋ฌด๊ฐ ๋ง์ด ํจ์จ์ ์ด๊ฒ ๋๊ณ , ๊ทธ ๋งํผ ์ง์ํ ๊ฑฐ๋ฆฌ๋ ์ ์ด์ง๋๊น์.