【问题标题】:Creating an web API in ASP.NET [closed]在 ASP.NET 中创建 Web API [关闭]
【发布时间】:2009-07-07 10:38:01
【问题描述】:

我正在为我建立的网站创建一个 API。 API 将在 ASP.NET 中构建 - 可能使用 VB,并且需要被包括 PHP 在内的多个平台使用。

我已经阅读了一些关于 REST 与 SOAP API 的内容,并且对我应该走哪条路线感到困惑。我还需要一些可以用来入门的示例和框架。

【问题讨论】:

    标签: asp.net vb.net api rest soap


    【解决方案1】:

    来自本月的 MSDN 杂志:

    RESTful XHTML: RESTful Services with ASP.NET MVC and XHTML

    本文介绍如何使用 XHTML 和 ASP.NET MVC 实现 休息服务。亚伦·斯康纳德

    【讨论】:

    【解决方案2】:

    您可以使用多种技术组合来构建这些服务:

    • SOAP 服务 - 如果您要使用 SOAP 样式的服务,您可能希望使用 WCF 或 ASMX 服务。
    • REST 服务 - 如果您使用 RESTful 格式,您有更多选择。您可以使用 HTTPHandler、ASP.NET MVC 框架或 WCF

    评估方法时需要考虑的一些事项:

    • Userbase Technology - SOAP 服务在具有 Java 或 .NET 客户端的企业中是首选,因为 Java 和 .NET 技术可以快速自动创建本地绑定,让应用程序与远程服务进行通信,就好像它们是本地对象一样.如果您的消费者群更倾向于 PHP/Ruby,那么工具就不那么流行了,这些人群往往更喜欢 RESTful 模型。自动绑定是由于存在 WSDL。采用 WADL 来描述 RESTful 服务正在逐渐缩小这一鸿沟。
    • 内容类型 - 不仅仅是服务风格,您将提供什么类型的内容以及将其用于什么用途?如果您的客户要直接在 UI 中使用这些数据,那么 JSON 可能是 XML 的替代方案。如果他们将其集成到应用程序的更多中间层,XML 可能是更好的选择。
    • 用户配置和管理 - 一旦您决定了 REST 还是 SOAP 和内容类型,框架(WCF、MVC、.NET)将为您处理大量工作。然后,困难的部分变成了用户配置、管理、身份验证等。用户是使用现有凭证还是其他凭证,他们是在带内还是带外配置的,你如何限制 API 消耗。完全保证另一个帖子。

    一旦您消化了这些选项,我建议您查看一些框架,看看您最喜欢哪一个。由于完成工作有多种方法,您应该找到最适合您的需求和能力的方法。此外,无论是长期还是短期,您都可能希望开始尝试使用 Web 服务测试工具 - 我的建议是 SOAP UI。您可以使用 SOAP UI 以 SOAP 和 REST 格式使用现有的 Web 服务(例如 Flickr、Twitter、Amazon),并了解 API 的成功实施和在线运行情况。构建服务后,您还可以使用此工具对服务执行功能和负载测试。

    【讨论】:

      【解决方案3】:

      只需创建一个 Asp.net Web 服务(一个单独的项目或在同一个 Asp.net Web 表单应用程序中包含 Web 方法)或更高级的 WCF Web 服务(也可以包含在同一个应用程序中或单独)。这还取决于您想要在安全方面做什么。

      如果您为 Asp.net Web 表单应用程序创建了单独的项目,则可以轻松地将这些项目/程序集与您的服务一起使用。

      【讨论】:

      • 请求路由(用于 REST)在 asp.net 3.5 SP1 中也支持用于 Web 表单/Web 服务...
      【解决方案4】:

      您的 API 是否会提供比您网站已有的功能更多的功能?如果没有,为什么不让您现有的网页易于通过代码访问。这样您就不需要支持两个不同的接口。

      如果您考虑一下,您现有的网页会提供相对容易解析的 html 内容。这些页面包含指向站点中其他功能的链接。这些页面包含用户当前看到的所有数据。

      只要您现有的网站不使用会话状态,您可能已经拥有 RESTful API。

      【讨论】:

        【解决方案5】:

        REST 是一种简单的架构风格,用于设计易于从多个平台使用的 API。

        SOAP 更复杂,但确实为许多额外协议提供了标准,例如事务可靠性、消息传递、安全性、身份验证等。

        除非您正在编写复杂的企业消息传递系统,否则 REST 可能会很好(但不要引用我的话)。

        您可能希望查看 Microsoft 的 WCF 网页中的 REST。 http://msdn.microsoft.com/en-us/netframework/cc950529.aspx.

        【讨论】:

        • REST 是一种用于构建分布式应用程序的架构风格。它经常与仅使用 XML 或 JSON 有效负载进行 HTTP 请求相混淆。
        猜你喜欢
        • 1970-01-01
        • 2012-03-10
        • 2012-07-09
        • 1970-01-01
        • 2015-07-17
        • 1970-01-01
        • 2015-01-03
        相关资源
        最近更新 更多