.Net Core WebApi 의 간단 한 생 성 및 사용 방법

11673 단어 .netcorewebapi
머리말
현재 의 소프트웨어 개발 발전 추세 에 따 르 면 앞 뒤 가 분리 되 든 데이터 서 비 스 를 제공 하 든 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)을 붙 이려 고 했 는데 요즘 은 더 안 될 수도 있다 고 생각 했 어 요.나중에 더 붙 여 주세요.ㄟ( , )ㄏ
자,이상 이 이 글 의 모든 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가 치 를 가지 기 를 바 랍 니 다.여러분 의 저희 에 대한 지지 에 감 사 드 립 니 다.

좋은 웹페이지 즐겨찾기