编写REST API包装器的指南

时间:2009-10-19 14:58:19

标签: .net language-agnostic api rest

我已经编写了一些关于REST和不太结构化的Web界面的非常随意的包装,但这些只是为了好玩,很少关注错误检测和处理,超时等。

有人可以给我一些关于实践或资源的指导,为REST API开发一个可靠的专业.NET(或其他平台)包装器吗?

我脑子里想的是:

  1. 解释HTTP错误代码并从API错误中过滤协议错误。
  2. 构建基于URL的请求,可能包含模式匹配和令牌替换。
  3. 将回复与请求相匹配。
  4. 如何将OO模型映射到REST模型。一些请求适合静态方法,例如获取列表,其他人挂在静态和实例之间,可能是一个普通的提供者模式与所有静态方法?
  5. 新:我发现这几乎是基本的guide to making Yahoo REST calls,但它是一个起点。

    重要提示: 一个非常复杂且很少涉及的方面是如何在REST API上处理表单身份验证。单独的登录请求,cookie存储等

1 个答案:

答案 0 :(得分:7)

虽然我已经以OOP方式包装了无数的Web服务,但我发现很难为你的问题找到一个好的答案。

可在此处找到几个Yahoo API示例:http://curlobjects.com/trac/browser/trunk/lib/YahooApi

  

1解释HTTP错误代码并从API过滤协议错误   错误。

我的基本http类有一个可以覆盖的http错误回调。

  

2构建基于URL的请求,可能带有模式匹配和   令牌替换。

我更喜欢字符串连接。

  

4如何将OO模型映射到REST模型。有些请求适合静态   方法,例如,得到名单,和   其他人则介于两者之间   静态和实例,也许是平原   提供者模式与所有静态   方法

有时候你需要一个大的静态工厂/提供者,有时候你需要为每个方法创建一个类,有时候每组相关方法都有一个类......真的没有一种方法可以解决这个问题。我总是花一些时间来了解服务的结构,然后尝试找到一种优雅的方法来抽象重复的部分。

如果您对登录表格,cookies等有任何疑问,我很乐意回答。

编辑:

提到了HttpWebRequest,我猜你需要设置ClientCertificate property并正确使用SSL,或者你可以使用CertificatePolicy ignore all SLL errors