客户端可以搞乱我的API吗?

时间:2012-05-27 19:35:28

标签: api rest soap

我有一个围绕两个用户之间交易的网站。每个用户都需要同意相同的条款。如果我想要一个API,以便其他网站可以将其实现到他们自己的网站中,那么我想确保其他网站不会通过在其间包含更多字段或与我的应用程序无关的事情来搞乱该过程。这可能吗?

2 个答案:

答案 0 :(得分:1)

如果我要实现这样的事情,我会允许其他网站使用将它们链接到我的网站的令牌/ URL /小部件。因此,例如,网站X希望使用我的服务以相同的条款同意用户A和B.他们的页面将有一个嵌入式表格/框架,它将从我的网站生成,用户B也会收到一封电子邮件,其中包含指向我网站页面的链接(或者是一个网页X页面,其中包含从我的服务器生成的表格/框架)。 考虑不同的网站如何使用eBay让用户付费。你购买网站上的所有东西,但是当你付款时,要么你被带到ebay页面并在付款后回来,要么网站有一个小的表格/框架直接链接到ebay。 但这是我的解决方案,一种方法。希望这会有所帮助。

答案 1 :(得分:0)

这取决于您的API的实现方式。构建一个可以从字面上获取任何类型数据的API或构建一个可以将其他命名的键/值对作为字段的API需要更多的工作,思考和工程。

如果您已经以这种方式实现了API,那么此API的用户很可能可以通过传入其他数据来使用它来扩展功能或构建稍微不同的东西。

但是,如果您的API构建为必须传递特定值并且这些字段是 required ,那么您的API的使用方式就会变得更加困难原本打算。

例如,Google有许多不同的API用于不同目的,每个API都有一个非常特定数量的必需参数,开发人员必须使用这些参数才能成功发出HTTP请求。虽然这些API的目标是允许开发人员扩展功能,但它们只允许访问非常特定的数据。

最后,您可以使用身份验证来防止未经授权访问您的API。具体的实现细节在很大程度上取决于您正在使用的平台以及API的使用方式。例如,如果用户必须登录才能使用API​​提供的服务,那么OAuth的形式就足够了。但是,如果其他服务器将使用您的API,则授权必须在HTTP标头中进行。

有关API最佳做法的详细信息,请参阅7 Rules of Thumb When You Build an API以及标题为How to Design a Good API and Why That Matters的Google工程师幻灯片。