创建我自己的“URL管理器”

时间:2012-10-30 15:36:08

标签: c# asp.net

我正在编写一个http API,我需要比我在asp.net中使用的更多的灵活性。这是一个非常简单的问题,只需要一些帮助就可以走上正轨。

我的问题是,我想根据请求创建一个响应对象。 F.x用户在请求时可以获取xml文档:“myapi / images / 5 / xml”。或者如果它以json结束,则将其作为json。创建正确的响应对象没有问题。我只需要一种方法来收集某个对象中的所有请求,然后使用正则表达式解析URL并在其上创建正确的响应。

但是如何收集Web应用程序上的所有请求?

1 个答案:

答案 0 :(得分:1)

您可能想要使用正则表达式解析整个URL。挂钩ASP.NET的路由引擎可能更容易: -

routes.MapHttpRoute(
  name: "MyApi",
  routeTemplate: "myapi/{controller}/{id}/{responseType}",
  defaults: new
  {
    id = RouteParameter.Optional, responseType = RouteParameter.Optional
  });

然后,您的操作方法可以从网址接受参数responseType

我同意上面的史蒂文的评论,但你应该从请求标题中获取响应类型,而不是从网址获取。