Как видите, в отличии от обычного ASP.NET MVC приложения, в дереве проекта с HomeController появился еще один ValuesController.
Вот его код:
1: public class ValuesController : ApiController
2: {
3: // GET /api/values
4: public IEnumerable<string> Get()
5: {
6: return new string[] { "value1", "value2" };
7: }
8:
9: // GET /api/values/5
10: public string Get(int id)
11: {
12: return "value";
13: }
14:
15: // POST /api/values
16: public void Post(string value)
17: {
18: }
19:
20: // PUT /api/values/5
21: public void Put(int id, string value)
22: {
23: }
24:
25: // DELETE /api/values/5
26: public void Delete(int id)
27: {
28: }
29: }
1: public static void RegisterRoutes(RouteCollection routes)
2: {
3: routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
4:
5: routes.MapHttpRoute(
6: name: "DefaultApi",
7: routeTemplate: "api/{controller}/{id}",
8: defaults: new { id = RouteParameter.Optional }
9: );
10:
11: routes.MapRoute(
12: name: "Default",
13: url: "{controller}/{action}/{id}",
14: defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
15: );
16: }
Запустив наше приложение, увидим такую вот страницу, которую возвращает HomeController:
Сейчас продемонстрируем как работает ValuesController. По умолчанию контент отдается в формате JSON. Перейдя по ссылке http://localhost:9184/api/values нашего приложения в Internet Explorer, мы сгенерируем GET запрос и получим такой JSON ответ:
["value1","value2"]
А если открыть сссылу в Chrome, то получим ответ в XML:
<ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<string>value1</string>
<string>value2</string>
</ArrayOfString>
Это очень удобно, когда один и тот же код может возвращать одни и те же данные в разных форматах автоматически, основываясь на параметрах запроса.
Для того, чтобы постоянно ответ запроса отдавался в JSON, можно в функции Application_Start() из Global.asax файла прописать такую строчку:
Откроем теперь ссылку в Chrome и увидим уже вывод в формате JSON.1: GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear();
P.S. Рекомендую посмотреть видео Getting Started with ASP.NET Web API - http://www.asp.net/web-api/videos/getting-started
Комментариев нет:
Отправить комментарий