ASP. NET Core 웹 API 최소 화 프로젝트
3665 단어 ASP
때로는 하나의 API 만 만 만 들 고 Razor, 현지 화 또는 XML 직렬 화 에 관심 을 가 질 필요 가 없다.쓸모없는 NuGet 패키지 와 코드 를 삭제 함으로써 API 를 향상 시 킬 수 있 습 니 다. 로 딩 시간 을 줄 이 고 패키지 크기 를 줄 입 니 다.
새 항목
VS 2017 에서 miniwebapi 라 는 이름 의 ASP. NET Core 프로그램 (. NET Core) 항목 을 새로 만 듭 니 다.확인 후 웹 API 템 플 릿 을 선택 하고 '인증 하지 않 음' 으로 '인증 하지 않 음' 을 설정 합 니 다.
그리고 프로젝트 를 만 들 었 는 지 확인 하 십시오. 기본 프로젝트 의 csproj 파일 내용 은 다음 과 같 습 니 다.
netcoreapp1.1
NuGet 패키지 삭제
우선 삭제 Microsoft.AspNetCore.Mvc。
실은 Microsoft. VisualStudio. Web. Code Generation. Tools 및 삭제 도 가능 Microsoft.ApplicationInsights.AspNetCore 。
이어서 첨가 하 다
Microsoft.AspNetCore.Mvc.Core
Microsoft.AspNetCore.Mvc.Formatters.Json
최종 miniwebapi. csproj 파일 은 다음 과 같 습 니 다.
netcoreapp1.1
사실 Microsoft. Extensions. Logging. Debug 필요 하지 않 아 도 삭제 할 수 있 습 니 다. 여 기 는 보류 되 어 있 습 니 다.
서비스 설정
Microsoft. ApplicationInsights. AspNetCore 를 제외 한 경우 Program. cs 에서 제거 해 야 합 니 다. UseApplicationInsights ()
이 어 Startup. cs 파일 을 열 고 Configure Services 방법 에서 제거 합 니 다. services.AddMvc();
그리고 다음 과 같이 바 꿉 니 다.
services.AddMvcCore().AddJsonFormatters();
다음 에 기본 Values Controller. cs 를 열 면 다음 과 같이 변 경 됩 니 다.
[Route("api/[controller]")] public class ValuesController
{ // GET api/values [HttpGet] public IEnumerable Get()
{ return new string[] { "linezero", "linezero's blog" };
} // GET api/values/5
[HttpGet("{id}")] public string Get(int id)
{ return "linezero"+id;
} // POST api/values [HttpPost] public void Post([FromBody]string value)
{
} // PUT api/values/5
[HttpPut("{id}")] public void Put(int id, [FromBody]string value)
{
} // DELETE api/values/5
[HttpDelete("{id}")] public void Delete(int id)
{
}
}
포 인 트 는 기본 적 인 계승 을 없 애 는 것 이다. Controller。
크로스 필드, 데이터 검증 과 같은 다른 요구 사항 이 있 으 면 해당 하 는 NuGet 패 키 지 를 추가 할 수 있 습 니 다.
Microsoft. AspNetCore. Mvc. corps 크로스 도 메 인 에 대응 하 는 services. AddMvcCore (). AddJSonFormatters (). AddCors ();
Microsoft. AspNetCore. Mvc. Data Annotations 데이터 검증 속성.
AddDataAnnotations();
테스트
디 버 깅 기능 을 사용 하 는 프로그램 을 실행 합 니 다. VS 2017 은 자동 으로 브 라 우 저 를 열 고 해당 하 는 api / values 에 접근 합 니 다. 다음 과 같이 표 시 됩 니 다.