编写REST API包装器的指南

Pro*_*ofK 26 .net language-agnostic api rest

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

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

我脑子里想的是:

  1. 解释HTTP错误代码并从API错误中过滤协议错误.
  2. 构建基于URL的请求,可能包含模式匹配和令牌替换.
  3. 匹配回复请求.
  4. 如何将OO模型映射到REST模型.一些请求适合静态方法,例如获取列表,而其他请求挂在静态和实例之间,可能是一个带有所有静态方法的普通提供者模式?

新:我从那以后发现这个几乎是基本的指导来进行雅虎REST调用,但它是一个起点.

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

bhs*_*seo 7

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

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

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

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

2构建基于URL的请求,可能包含模式匹配和令牌替换.

我更喜欢字符串连接.

4如何将OO模型映射到REST模型.一些请求适合静态方法,例如获取列表,而其他请求挂在静态和实例之间,可能是一个带有所有静态方法的普通提供者模式?

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

如果您对登录表单,cookie等有任何更具体的问题,我很乐意回答.

编辑:

提到了HttpWebRequest,我猜你要么需要设置ClientCertificate属性并正确使用SSL,要么可以使用CertificatePolicy 忽略所有SLL错误.