ASP.NET은 .NET을 사용하여 최신 웹 앱 및 서비스를 구축하기 위해 Microsoft에서 만든 오픈 소스 웹 프레임워크입니다. ASP.NET은 크로스 플랫폼이며 Windows, Linux, macOS 및 Docker에서 실행됩니다.
더 보기: https://dotnet.microsoft.com/en-us/learn/aspnet/what-is-aspnet
솔루션 프로젝트 생성
dotnet new sln -n Tutorial-Api
ASP.NET Web Api 프로젝트 만들기
dotnet new webapi -o Api
XUnit 프로젝트 생성
dotnet new xunit -o Xunit.Tests
솔루션에 프로젝트 추가
dotnet sln add .Tutorial.ApiTutorial.Api.csproj
dotnet sln add .XUnit.TestsXUnit.Tests.csproj
xunit 프로젝트에 참조 프로젝트 추가
dotnet add . /XUnit.Tests/XUnit.Tests.csproj reference .Tutorial.ApiTutorial.Api.csproj
프로젝트에 종속성 MongoDB 드라이버 추가
dotnet add package MongoDB.Driver --version 2.18.0
몽고쉘
Install mongo-shell
https://www.mongodb.com/docs/mongodb-shell/install/
> mongod --dbpath < data_directory_path >
> show dbs
> use tutorialdb
> db.createCollection( ' tutorials ' )
> db.tutorials.insertMany([{ " title " : " Design Patterns " , " description " : " " , " published " : false}])
> db.tutorials.find().pretty ()
dotnet run --project . /Tutorial.Api/
스웨거: https://localhost:7272/swagger
https://learn.microsoft.com/en-us/dotnet/core/tools/dotnet-run#examples
/api/tutorials 받기
응답
[
{
"id" : " 63730beabd3cb05f2331be45 " ,
"title" : " hello " ,
"description" : " world " ,
"published" : null ,
"createdAt" : " 0001-01-01T00:00:00Z " ,
"updatedAt" : " 0001-01-01T00:00:00Z "
},
{
"id" : " 63732124796b18bc753e9157 " ,
"title" : " dotnet " ,
"description" : " microsoft " ,
"published" : null ,
"createdAt" : " 0001-01-01T00:00:00Z " ,
"updatedAt" : " 0001-01-01T00:00:00Z "
}
]
GET /api/tutorials/{id}
응답
{
"id" : " 63730beabd3cb05f2331be45 " ,
"title" : " hello " ,
"description" : " world " ,
"published" : null ,
"createdAt" : " 0001-01-01T00:00:00Z " ,
"updatedAt" : " 0001-01-01T00:00:00Z "
}
POST /api/tutorials
요청 본문
{
"title" : " string " ,
"description" : " string " ,
}
응답 본문
{
"code" : " 200 " ,
"message" : " Inserted a single document Success "
}
/api/tutorials 삭제
응답 본문
{
"code" : " 200 " ,
"message" : " All deleted "
}
/api/tutorials/{id} 삭제
응답 본문
{
"code" : " 200 " ,
"message" : " Deleted id 63730beabd3cb05f2331be45 "
}
PUT /api/tutorials/{id}
요청 본문
{
"id" : " 63730beabd3cb05f2331be45 " ,
"title" : " hello " ,
"description" : " world " ,
"published" : true
}
응답 본문
{
"code" : " 200 " ,
"message" : " Deleted id 63730beabd3cb05f2331be45 "
}
dotnet build
별개의 레이어로 복원
dotnet restore
릴리스 빌드 및 게시
dotnet publish -c Release -o out
실행 범위
dotnet test --collect:"XPlat Code Coverage"
ReportGenerator 너겟 추가
dotnet add package ReportGenerator --version 5.1.10
설정 도구 ReportGenerator
dotnet tool install -g dotnet-reportgenerator-globaltool
더 보기: https://www.nuget.org/packages/ReportGenerator
reportgenerator -reports:"XUnit.TestsTestResults*coverage.cobertura.xml" -targetdir:". /coveragereport" -reporttypes:Html
환경변수
환경 이름 | 값 |
---|---|
TutorialDatabase__ConnectionString | 몽고디비://xxxxxxxx |
TutorialDatabase__DatabaseName | 튜토리얼DB |
TutorialDatabase__TutorialCollectionName | 튜토리얼 |
https://learn.microsoft.com/en-us/azure/azure-monitor/app/ilogger#aspnet-core-applications
ApplicationInsights 패키지 추가
dotnet add package Microsoft.ApplicationInsights.AspNetCore --version 2.21.0
...