ASP.NET 웹 API의 반환 데이터 형식 및 종속 주입
이 편은 ASP와 관련된다.NET 웹 API의 반환 데이터가 적절하고 종속 주입됩니다.데이터 가져오기
public IEnumerable<Food> Get()
{
var results = reop.GetAllFoods()
.OrderBy(f => f.Description)
.Take(25)
.ToList();
return results;
}
기본적으로 ASP.NET API 컨트롤러 메서드가 json 데이터 형식을 반환합니다.요청할 때 다른 형식을 요구할 수 있습니다. 예를 들어 User-Agent:FiddlerHost:localhost:8000Accept:text/xml 요청 데이터도 여러 형식을 요구할 수 있습니다. 예를 들어 User-Agent:FiddlerHost:localhost:8000Accept:text/xml,applicaiton/json,text/html 이때 서비스 측은 클라이언트가 받아들일 수 있는 유형의 그룹을 먼저 볼 수 있습니다.그리고 서버에서 받아들일 수 있는 형식 그룹과 일치하며, 서버에서는 기본적으로 json을 되돌려줍니다. 따라서 위에서 요청한 json 데이터를 되돌려줍니다.되돌아오는 json 데이터는 다음과 같습니다:Description:'dddd'즉 알파벳 대문자입니다.어떻게 자모를 소문자로 바꿉니까?물론 보기 모델의 속성명 첫 번째 알파벳 소문자를 통해 실현할 수 있다.하지만 Formatter를 사용자 정의할 수도 있습니다.사용자 정의 반환 데이터의 형식은 WebApiConfig입니다.cs 파일에서
using Newtonsoft.Json.Serialization;
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new {id = RouteParameter.Optional}
);
var jsonFormatter = config.Formatters.OfType<JsonMediaTypeFormatter>().FirstOrDefault();
jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
}
}
이 때 되돌아오는 데이터 형식은 대체로: description:'dddd'는 Dependency Injection 주입에 의존합니다. 예를 들어 controller에서 우리는 구조 함수를 통해repoitory 인터페이스에 주입하기를 원합니다.
public class FoodsController : ApiController
{
IFoodRepository _reop;
public FoodsController(IFoodRepository reop)
{
_repo = repo;
}
}
런타임 시 오류 보고: System.Invalid Operaiton Exception은 어떻게 API로 하여금 구조 함수를 통한 의존 주입을 지원하게 합니까?Ninject를 설치합니다.MVC3 설치 후 AppData 파일에 NinjectWebCommon 클래스가 하나 더 있습니다.종속은 해당 Register Services에 등록할 수 있습니다.
private static void RegisterServices(IKernel kernel)
{
kernel.Bind<IFoodRepository>().To<FoodRepository>();
}
여기서 IOC Container에게 IReposiotory를 요청할 때 Repository 실례를 되돌려달라고 합니다.마지막으로 API Ninject의 존재를 알려야 합니다.NinjectWebCommon 클래스의 CreateKernel 방법에서WebApiContrib을 설치합니다.IoC.Ninject
using WebApiContrib.IoC.Ninject;
...
private static IKernel Createkernel()
{
var kernel = new StandardKernel();
// API
GlobalConfiguraiton.Configuration.DependencyResolver = new NinjectResolver(kernel);
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.