需要开发一个 RESTful API(JSON 和 XML)

Posted

技术标签:

【中文标题】需要开发一个 RESTful API(JSON 和 XML)【英文标题】:Need to develop a RESTful API (both JSON and XML) 【发布时间】:2012-03-29 11:12:31 【问题描述】:

我希望在 ASP.NET 上为网站制作一个 RESTful API。我的问题是我需要将它集成到网站中,而不是作为一个单独的项目。

我知道 WCF 让这变得非常简单,并且它是实现它的理想方式,但我认为您不能将 WCF 服务项目和 ASP.Net 网站结合起来,这是否正确?

有没有办法我们可以使用 web 服务 (asmx) 文件来做到这一点(因为我知道 asmx 服务不使用 SOAP?)

我需要这个在同一个项目中的原因是客户将能够为他们的域(网站将使用)购买 ssl,我也需要使 API 安全,但是客户不应要求购买两个 ssl 甚至是通配符之一。 知道了这一点,有没有更好更简单的方法来使用 WCF 做到这一点?

【问题讨论】:

您应该忽略 ASMX。这是一项已被 WCF 取代的遗留技术。 【参考方案1】:

看看新的 MVC4 Beta,它将在今年 3 月至 4 月的某个时间上线,应该能够满足您在构建 Web 应用程序的同时构建 RESTful Web 服务的要求。我没有花太多时间在 MVC4 上详细介绍,但绝对值得一看。友情链接:Get MVC4; MVC4 and WebAPI blog.

希望这会有所帮助!

【讨论】:

【参考方案2】:

您可以使用 ASPNET MVC 与您的网站一起构建 API。

有关构建基本 MVC 站点的一些详细信息,请参阅 How can I implement a site with ASP.NET MVC without using Visual Studio?。

ASPNET MVC 服务可以响应 JSON 或 XML,或两者兼而有之。

两个 SSL 证书没有特殊要求。

【讨论】:

【参考方案3】:

我有一个公开两个 WCF REST 服务的 ASP.NET MVC 3 应用程序。我正在使用 .NET 4。您必须注意如何配置路由。例如,我的 WCF 服务的前缀为“api/v1/”,而所有其他请求均由 ASP.NET MVC 3 处理。

我遇到了一个问题,因为 IIS 拒绝提供一些“本地主机”请求(例如当您的 MVC 3 控制器尝试使用您的 WCF 休息服务时)。这是通过在我的主机文件中添加一个条目来解决的。在实施 OAuth 2.0 资源服务器或授权服务器时也要注意这一点。

在 .NET 4 中使用 WCF 进行 REST 服务可以正常工作,但 JSON 序列化很耗时。默认日期存在问题,而且速度很慢。您可能想看看使用不同的序列化程序。使用 WCF,您可以为免费获得的某些功能牺牲一些灵活性。

ASP.NET MVC 4(和 WEBAPI)仍处于测试阶段,所以对于发布日期较短的项目,我会避免这样做。

【讨论】:

【参考方案4】:

我实际上会使用NancyFX。设置路由非常简单,它带有内置的 XML 和 JSON 序列化程序,它们根据标头中的数据进行操作。

【讨论】:

以上是关于需要开发一个 RESTful API(JSON 和 XML)的主要内容,如果未能解决你的问题,请参考以下文章

RESTful API 设计约定

如何通过restful api传递部分对象(json)

AgileConfig - RESTful API 介绍

RESTful API - 批量操作的分块响应

用于 RESTFul JSON API 交互的推荐 Android HTTP 库是啥?

restful api接口介绍和数据返回及异常处理