代码之家  ›  专栏  ›  技术社区  ›  Josh

在ASP.NET中创建Web API[关闭]

  •  2
  • Josh  · 技术社区  · 15 年前

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

    我读过一些关于REST和SOAP API的文章,对我应该走哪条路线感到困惑。我还需要一些可以用来开始的示例和框架。

    5 回复  |  直到 6 年前
        1
  •  3
  •   John Saunders Tony    15 年前

    来自本月的msdn杂志:

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

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

        2
  •  1
  •   The Quantum Physicist    15 年前

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

    • SOAP服务 -如果您使用的是SOAP风格的服务,那么您将希望使用WCF或ASMX服务。
    • 休息服务 -如果你使用一种宁静的格式,你会有更多的选择。您可以使用httphandler、asp.net mvc框架或wcf

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

    • 用户基础技术 在JAVA或.NET客户端的企业中,SOAP服务是首选的,因为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
  •  0
  •   Robert Koritnik    15 年前

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

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

        4
  •  0
  •   Darrel Miller    15 年前

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

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

    只要您的现有网站不使用会话状态,您可能已经有了一个RESTfulAPI。

        5
  •  0
  •   samjudson    15 年前

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

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

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

    您可能需要查看来自Microsoft的WCF网页中的其余部分。 http://msdn.microsoft.com/en-us/netframework/cc950529.aspx .