다음 webapiconfig가 제공됩니다.요청에 따라 MVC 웹 API에서 xml 또는 json을 반환합니다.
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
및이 컨트롤러;
public class ProductsController : ApiController
{
Product[] _products = new Product[]
{
new Product { Id = 1, Name = "Tomato Soup", Category = "Groceries", Price = 1 },
new Product { Id = 2, Name = "Yo-yo", Category = "Toys", Price = 3.75M },
new Product { Id = 3, Name = "Hammer", Category = "Hardware", Price = 16.99M }
};
public IEnumerable<Product> GetAllProducts()
{
return _products;
}
}
URL을 사용하여 http://localhost/api/Products
제품의 목록을 XML 형식으로 가져옵니다.
내가 원하는 것은 json 또는 xml 요청을 기반으로 반환 할 수있는 옵션이 있습니다. 그래서 json의 경우, 그것은 될 것입니다.
http://localhost/api/Products.json
및 XML의 경우;
http://localhost/api/Products.xml
;
http://localhost/api/Products.json/1/
http://localhost/api/Products.xml/1/
이 기능을 구현할 수 있습니까?
대안은 다음과 같습니다.
http://localhost/api/json/Products/
라우트가 제대로 작동 자세한 내용에 당신을 데려 갈하지만 확장 물건이 아무것도하지 않는해야한다. global.asax에 추가했습니다. 문제입니까? – ChrisBint
{ext}가 매핑 된 포맷터를 참조하기 위해 하드 코딩 된 것으로 보이는 경우 Chris는 {extension} 대신 {ext}를 사용합니다. – MCattle
위대한 스레드. @MCattle이 말한 것처럼 항상 기억하십시오 : EXTENSION –