什么工具包(如果有而不是 WebAPI)用于为只能在 3.5 框架上 运行 的服务编写 RESTful API?

What kit (if any and not WebAPI) to use to write RESTful APIs for services that can only run on 3.5 framework?

我有一个托管在 x64 应用程序池(不允许 32 位)上的 Web 应用程序,它需要调用供应商提供的 3.5 框架 dll。这些限制都不在我的控制之下。希望 json 作为我的 request/response 的模型,我需要编写 RESTful api 来为我的网络应用程序提供该 dll。我意识到 WebAPI 工具包不适用于我,因为它们需要 4.0 框架,我的选择是什么?

WCF REST 支持 restful .NET 4.0 之前的 Web 服务。参见:A Guide to Designing and Building RESTful Web Services with WCF 3.5

用于在 REST 的 3.5 框架上编写您自己的 WCF 的工具:

WCF REST STARTER KIT

安装时,您会看到

Microsoft.Http.dll 
Microsoft.Http.Extensions.dll
Microsoft.ServiceModel.Web.dll 

在目录中: C:\Program Files (x86)\Microsoft WCF REST\WCF REST 初学者工具包预览 2\Assemblies

MORE ...

  1. 要将 WCF 用作 WCF Rest 服务,您必须启用 webHttpBindings。
  2. 它支持 [WebGet] 和 [WebInvoke] 的 HTTP GET 和 POST 动词 分别属性。
  3. 要启用其他 HTTP 动词,您必须在 IIS 中进行一些配置 接受 .svc 文件中特定动词的请求
  4. 使用 WebGet 通过参数传递数据需要配置。
  5. 必须指定UriTemplate 支持XML、JSON和ATOM数据 格式。

JSON formatter for 3.5

    using System.Runtime.Serialization.Json;  //System.ServiceModel.Web

    Me[] sizes = new Me[] { new Me{ radius = 34, height = 66 }, new Me{ radius = 24, height = 68 } }; // Me [DataContract]
    DataContractJsonSerializer szr = new DataContractJsonSerializer( typeof(Me[]) );   
    MemoryStream toJSONBuf= new MemoryStream();
    szr.WriteObject( toJSONBuf, sizes );        
    string strJSON = Encoding.Default.GetString(toJSONBuf.ToArray());
    toJSONBuf.Close(); 
    //Response.Write(Server.HtmlEncode( strJSON ));
    // REVERSE: the same serializer
    toJSONBuf= new MemoryStream(Encoding.Unicode.GetBytes( strJSON ));
    sizes = szr.ReadObject(toJSONBuf) as Me[];
    toJSONBuf.Close(); 

我自己的问题的答案是合并这两个文档

Implementing the URI Design with UriTemplate

How to: Create a Basic WCF Web HTTP Service

第一篇比较长,没有重点,第二篇还不错。您唯一需要的其他帮助是编辑 .config,您应该使用 VS 提供的 WCF 编辑工具。

Example using WCF Config editor

source code