您的位置:首页 > 编程语言 > ASP

asp.net web api rest风格与RPC风格调用

2012-12-14 09:43 501 查看
Working console program:

static voidMain(string[] args)
{
  // Set up server configuration
  HttpSelfHostConfiguration config =newHttpSelfHostConfiguration("http://localhost:8080");
  //Route Catches the GET PUT DELETE typical REST based interactions (add more if needed)
  config.Routes.MapHttpRoute("API Default","api/{controller}/{id}",new{ id =RouteParameter.Optional},new{ httpMethod =newHttpMethodConstraint(HttpMethod.Get,HttpMethod.Put,HttpMethod.Delete)});
  
  //This allows POSTs to the RPC Style methods http://api/controller/action
  config.Routes.MapHttpRoute("API RPC Style","api/{controller}/{action}",new{ httpMethod =newHttpMethodConstraint(HttpMethod.Post)});
  
//Finally this allows POST to typeical REST post address http://api/controller/
  config.Routes.MapHttpRoute("API Default 2","api/{controller}/{action}",new{ action ="Post"},new{ httpMethod =newHttpMethodConstraint(HttpMethod.Post)});
  using(HttpSelfHostServer server =newHttpSelfHostServer(config))
  {
  server.OpenAsync().Wait();Console.WriteLine("Press Enter to quit.");Console.ReadLine();
  }
}

Working Controller

public class TaskInstanceQueueController:ApiController
{
  publicvoidGet(string id)
{
// Do something with my taskInstanceConsole.WriteLine("Method entered!"+ id);}[ActionName("Post")][HttpPost]publicvoidPost(TaskInstance taskInstance){// Do something with my taskInstanceConsole.WriteLine("REST Post Method entered!");}[ActionName("Queue")][HttpPost]publicvoidQueue(TaskInstance taskInstance){// Do something with my taskInstanceConsole.WriteLine("Queue Method entered!");}[ActionName("Another")][HttpPost]publicvoidAnother(TaskInstance taskInstance){Console.WriteLine("Another Method entered!");}}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐