.Net Core WebApi 의 간단 한 생 성 및 사용 방법
현재 의 소프트웨어 개발 발전 추세 에 따 르 면 앞 뒤 가 분리 되 든 데이터 서 비 스 를 제공 하 든 WebApi 는 점점 광범 위 하 게 사용 되 고 있 으 며.NET Core 도 우리.NET 개발 자의 미래 발전 추세 이기 때문에.NET Core Api 를 사용 하 는 것 을 배 우 는 것 이 필요 하 다.
저 는.NET 초보 로 서 천천히 공부 하고 있 습 니 다.배 운 것 을 한 걸음 한 걸음 기록 하고 있 습 니 다.
프로젝트 생 성
VS 2019 를 열 고 ASP.NET Core 웹 프로그램 을 새로 만 듭 니 다.

항목 이름 을 입력 하고 경 로 를 선택 하여 만 듭 니 다.

.NET Core 를 선택 하 십시오.저 는.NET Core 2.2 버 전 을 사용 합 니 다.API 를 선택 하고 오른쪽 선택 을 취소 합 니 다.

만 든 항목 디 렉 터 리 의 내용 은 다음 과 같 습 니 다.

편집 컨트롤 러
Controllers 폴 더 를 엽 니 다.기본 으로 만 든 Values Controller 컨트롤 러 를 직접 사용 합 니 다.(사실은 이것 이 예 이기 때문에 내 가 게 으 르 게 재 건 했 기 때문이다(~)

ValuesController 컨트롤 러 의 기본 내용 은 다음 과 같 습 니 다.Get,Post,Put,Delete 등 네 가지 HTTP 방법 이 있다.

이 컨트롤 러 의 내용 을 다시 쓰 고 경 로 를 api/컨트롤 러/방법(api/[controller]/[action])으로 설정 합 니 다.자주 사용 하 는 Get 과 Post 두 가지 요청 에 따라 Get 방법 두 개 와 Post 방법,매개 변수 클래스 하 나 를 썼 습 니 다.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
namespace FirstApi.Controllers
{
//
[Route("api/[controller]/[action]")]
[ApiController]
public class ValuesController : ControllerBase
{
/// <summary>
///
/// </summary>
/// <returns></returns>
[HttpGet]
public ActionResult<string> Get()
{
return "Hello World!";
}
/// <summary>
///
/// </summary>
/// <param name="num1"> </param>
/// <param name="num2"> </param>
/// <returns></returns>
[HttpGet]
public ActionResult<int> Sum(int num1,int num2)
{
return num1 + num2;
}
/// <summary>
///
/// </summary>
/// <param name="param"> </param>
/// <returns></returns>
[HttpPost]
public ActionResult<int> Subtract(Param param)
{
int result = param.num1 - param.num2;
return result;
}
}
/// <summary>
///
/// </summary>
public class Param
{
/// <summary>
///
/// </summary>
public int num1 { get; set; }
/// <summary>
///
/// </summary>
public int num2 { get; set; }
}
}
그리고 항목→속성→디 버 깅 을 오른쪽 단추 로 누 르 면 브 라 우 저 를 시작 하 는 기본 값 을 첫 번 째 Get 방법 으로 가 리 킵 니 다.

디 버 깅 실행,첫 번 째 방법 에 접근 하여 결 과 를 되 돌려 줍 니 다.

두 번 째 방법 에 파 라 메 터 를 추가 하여 결 과 를 얻 습 니 다.

세 번 째 방법 은 Post 요청 입 니 다.직접 입력 할 수 없고 다른 방식 으로 가능 합 니 다.
3.Swagger 구축
이렇게 하면 WebApi 는 간단하게 실현 되 지만 이렇게 하면 관리 하기 가 쉽 지 않다.인 터 페 이 스 를 잘 관리 하고 테스트 하기 위해 서 저 는 Swagger 프레임 워 크 를 사 용 했 습 니 다.
Swagger 가 뭐 예요?Swagger 는 RESTful 스타일 의 웹 서 비 스 를 생 성,설명,호출,시각 화 하 는 규범 적 이 고 완전한 프레임 워 크 입 니 다.
항목 을 오른쪽 클릭 하고 NuGet 패키지 관 리 를 클릭 합 니 다.

탐색 으로 전환 하고'Swashbuckle.AspNetCore'를 검색 하여 설치 합 니 다.

설치 가 완료 되면 Startup.cs 파일 을 편집 합 니 다.

다음 세 개의 네 임 스페이스 를 참조 하 십시오.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
namespace FirstApi.Controllers
{
//
[Route("api/[controller]/[action]")]
[ApiController]
public class ValuesController : ControllerBase
{
/// <summary>
///
/// </summary>
/// <returns></returns>
[HttpGet]
public ActionResult<string> Get()
{
return "Hello World!";
}
/// <summary>
///
/// </summary>
/// <param name="num1"> </param>
/// <param name="num2"> </param>
/// <returns></returns>
[HttpGet]
public ActionResult<int> Sum(int num1,int num2)
{
return num1 + num2;
}
/// <summary>
///
/// </summary>
/// <param name="param"> </param>
/// <returns></returns>
[HttpPost]
public ActionResult<int> Subtract(Param param)
{
int result = param.num1 - param.num2;
return result;
}
}
/// <summary>
///
/// </summary>
public class Param
{
/// <summary>
///
/// </summary>
public int num1 { get; set; }
/// <summary>
///
/// </summary>
public int num2 { get; set; }
}
}
Configure Services 방법 에 아래 코드 를 추가 하고 Swagger 생 성 기 를 등록 하여 문 서 를 정의 하고 xml 문서 의 설명 경 로 를 설정 합 니 다.
// Swagger
// Swagger , Swagger
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new Info
{
Version = "v1",
Title = " ",
Description = "RESTful API"
});
// Swagger xml
var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
c.IncludeXmlComments(xmlPath);
});
Configure 방법 에 아래 코드 를 추가 합 니 다.미들웨어 서 비 스 를 사용 하여 Swagger 와 SwaggerUI 를 생 성하 고 SwaggerUI 의 RoutePrefix 를 빈 문자열 로 설정 하면 루트 노드(http://localhost:port)SwaggerUI 화면 을 직접 표시 합 니 다.
// Swagger
app.UseSwagger();
// SwaggerUI, Swagger JSON
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "Web App V1");
c.RoutePrefix = string.Empty;//
});
편집 후 Startup.cs 전체 코드 는 다음 과 같 습 니 다.
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Options;
using Swashbuckle.AspNetCore.Swagger;
namespace FirstApi
{
public class Startup
{
public Startup(IConfiguration configuration)
{
Configuration = configuration;
}
public IConfiguration Configuration { get; }
// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
// Swagger
// Swagger , Swagger
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new Info
{
Version = "v1",
Title = " ",
Description = "RESTful API"
});
// Swagger xml
var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
c.IncludeXmlComments(xmlPath);
});
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
// Swagger
app.UseSwagger();
// Swagger, Swagger JSON
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "Web App V1");
c.RoutePrefix = string.Empty;//
});
app.UseMvc();
}
}
}
그리고 항목 을 오른쪽 클릭 하고 속성 을 클릭 합 니 다.
생 성 을 선택 하고 Debug 경 로 를 선택 하 십시오.

XML 문서 파일 을 선택 하고 자동 으로 채 우 면 경고 가 나타 납 니 다(비 강박 증 은 경 고 를 무시 할 수 있 습 니 다)

경 고 를 없 애 려 면 위의 취소 경고 에 위 에 표 시 된 1591 을 추가 하고 Ctrl+S 를 저장 하면 경고 가 사라 집 니 다.

그리고 디 버 깅 을 누 르 면 브 라 우 저 를 시작 한 후 url 을 제거 합 니 다.

완료 후 VS 를 실행 하면 문서 UI 페이지 에 들 어 갑 니 다.

4.Swagger 사용
우 리 는 첫 번 째 방법 을 열 고 Try it out 버튼 을 눌 렀 다.

이것 은 참여 하지 않 는 방법 입 니 다.Execute 를 직접 클릭 하여 실행 합 니 다.

실행 후 Response body 가 돌아 오 는 내용 을 볼 수 있 습 니 다.

두 번 째 방법 을 클릭 하여 두 개의 인 자 를 주 고 실행 을 입력 하여 결 과 를 되 돌려 줍 니 다.

세 번 째 방법의 매개 변 수 는 model 입 니 다.json 형식 을 전달 하려 면 기본 값 이 생 성 되 었 습 니 다.우 리 는 값 을 편집 하고 실행 하면 됩 니 다.

총화
여기까지.NET Core Api 의 간단 한 구축 과 사용 은 일 단락 되 었 습 니 다.이 편 은.NET Core Api 프로젝트 를 만 드 는 방법 과 Swagger 를 어떻게 구축 하여 문 서 를 만 들 고 사용 하 는 지 배 웠 습 니 다.그 다음 에 저 는.NET Core Api 를 계속 배우 고 활용 하 며 그 과정 을 기록 하 겠 습 니 다.이 제목 에(1)을 붙 이려 고 했 는데 요즘 은 더 안 될 수도 있다 고 생각 했 어 요.나중에 더 붙 여 주세요.ㄟ( , )ㄏ
자,이상 이 이 글 의 모든 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가 치 를 가지 기 를 바 랍 니 다.여러분 의 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
AS를 통한 Module 개발1. ModuleLoader 사용 2. IModuleInfo 사용 ASModuleOne 모듈...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.