我有一个围绕两个用户之间的交易的网站。每个用户都需要同意相同的条款。如果我想要一个 API,以便其他网站可以将其实现到他们自己的网站中,那么我想通过在两者之间包含更多字段或与我的应用程序无关的内容来确保其他网站不会弄乱该过程。这可能吗?
2 回答
如果我要实现这样的事情,我会允许其他网站使用将它们链接到我的网站的令牌/URL/小部件。因此,例如,网站 X 想使用我的服务来同意用户 A 和 B 的相同条款。他们的页面将有一个嵌入的表单/框架,该表单/框架将从我的网站生成,用户 B 还将收到一封电子邮件,其中包含指向我网站页面的链接(或网站 X 的页面,其中包含从我的服务器生成的表单/框架)。考虑不同的网站如何使用 eBay 来让用户付款。您在网站上购买了所有东西,但是当您付款时,您要么被带到 ebay 页面并在付款后返回,要么该网站有一个直接链接到 ebay 的小表格/框架。但这是我的解决方案,一种方法。希望这可以帮助。
这取决于您的 API 是如何实现的。构建一个可以从字面上获取任何类型数据的 API 或构建一个可以将附加的、命名的键/值对作为字段的 API 需要更多的工作、思考和工程。
如果您以这种方式实现了您的 API,那么该 API 的用户很可能会使用它来扩展功能或通过传递额外的数据来构建稍微不同的东西。
但是,如果您的 API 被构建为必须传递特定值并且这些字段是必需的,那么您的 API 很难以不同于您最初预期的方式使用。
例如,Google 有许多不同的 API 用于不同的目的,每个 API 都有非常特定数量的必需参数,开发人员必须使用这些参数才能成功发出 HTTP 请求。虽然这些 API 的目标是允许开发人员扩展功能,但它们确实只允许访问非常特定的数据片段。
最后,您可以使用身份验证来防止未经授权访问您的 API。具体的实现细节很大程度上取决于您使用的平台以及 API 的使用方式。例如,如果用户必须登录才能使用您的 API 提供的服务,那么一种 OAuth 形式就足够了。但是,如果其他服务器将使用您的 API,则授权必须在 HTTP 标头中进行。
有关 API 最佳实践的更多信息,请参阅构建 API 时的 7 条经验法则,以及来自 Google 工程师的幻灯片,标题为如何设计好的 API 以及为何如此重要。