به این مثال ها دقت کنید :
http://api.twitter.com/statuses/home_timeline.xml
http://api.twitter.com/statuses/home_timeline.json
http://api.twitter.com/statuses/home_timeline.atom
برای ایجاد همچین ساختاری به طور ساده میشه از یه route به این شکل استفاده کرد
و اما Controller
context.MapRoute(
"Api",
"{controller}/{action}.{type}",
new { action = "Index" }
);
[HttpGet]
public ActionResult Gold(string type = "") {
Tala t = GetTalaService();
if (t != null) {
if (type == "json")
return new JsonResult() { Data = t, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
if (type == "xml") {
return new XmlResult(t);
}
return View(t);
}
return View();
}
این مدل کنتلر نوشتن باعث میشه با یه متد هم درخواست های API جواب داده بشه و هم در صورت لزوم به View سرویس داده شود.
بعد از مدت ها مطلب فنی نوشتیم، بسی از خودمان متشکریم ;)
ویرایش: در Routing برای type مقدار پیشفرض رو حذف کنید.