2013-05-29 30 views
7

我想听听你的经验吗?我怎样才能最好地创建一个API来从数据库中检索数据。如果您发送视图名称或程序名称,那么在安全的情况下,这对于坦克来说不会完全正确。所以我想知道是否有人对此有经验或想法?用于从数据库检索/发送数据的API

我应该例如具有告诉什么谁连接API的用户可以访问一个领域?表和行访问。

+0

查看SAAS架构。 – Sebas

+0

哪种语言? –

+2

你可以把所有的声望花在赏金上,但除非你明确表达你的问题,否则没有人能够回答你。 “创建从数据库中检索数据的API”听起来像重新发明了轮子,或者我不明白。描述你想做什么。 – TMS

回答

3

我给它一个镜头。

你已经提到的Web API,所以我会假设你正在使用的,这意味着你有一个数据库之上的REST API。

可以做的事:

  1. 想出要公开给用户的数据模型。这在数据库模型中可能会有所不同。如果你是一家商店,你可能有2-3个不同的表来存储产品,但是你会希望通过一个API调用来暴露一个“产品”。

  2. 一旦你有你的用户面临的数据模型,开始编写测试。您需要为您的Web API控制器进行单元测试,并且需要找到一种方法来模拟您正在创建的数据库调用。测试是非常值得的努力!

  3. 为了安全,你有很多选择。您可以从东西挑喜欢HMAC(https://en.wikipedia.org/wiki/Hash-based_message_authentication_code)或OAuth的(Best way to create a TOKEN system to authenticate web service calls?),甚至智威汤逊(Secure WebAPI with a JWT)。

  4. 一旦用户通过验证,你可以将它们分配权限。他们可以读取,写入和更新,具体取决于他们可以访问的内容。你可以有一个数据库表来控制这个潜在的。

  5. 我会建议考虑版本的时间提前。我的建议是始终有两个版本的API - 当前和以前的版本。您部署API,并在您首次替换它时支持弃用的API和新的API。不要试图支持两个以上的版本。

  6. 做最好的自己写一些种类的接口是通过Web API发送数据之前抽象的数据库。这有助于您在未来完全换出数据库,如果需要的话。它也有助于单元测试。