编写 REST API 包装器的指南

问题描述 投票:0回答:1

我围绕 REST 和结构化程度较低的 Web 界面编写了一些非常随意的包装器,但所有这些都只是为了好玩,很少关注错误检测和处理、超时等。

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

我想到的事情是:

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

新:我发现这个几乎太基本的进行 Yahoo REST 调用的指南,但它可以作为一个起点。

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

.net rest language-agnostic
1个回答
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 错误

© www.soinside.com 2019 - 2024. All rights reserved.