我想听听你的经验吗?我怎样才能最好地创建一个API来从数据库中检索数据。如果您发送视图名称或程序名称,那么在安全的情况下,这对于坦克来说不会完全正确。所以我想知道是否有人对此有经验或想法?用于从数据库检索/发送数据的API
我应该例如具有告诉什么谁连接API的用户可以访问一个领域?表和行访问。
我想听听你的经验吗?我怎样才能最好地创建一个API来从数据库中检索数据。如果您发送视图名称或程序名称,那么在安全的情况下,这对于坦克来说不会完全正确。所以我想知道是否有人对此有经验或想法?用于从数据库检索/发送数据的API
我应该例如具有告诉什么谁连接API的用户可以访问一个领域?表和行访问。
我给它一个镜头。
你已经提到的Web API,所以我会假设你正在使用的,这意味着你有一个数据库之上的REST API。
可以做的事:
想出要公开给用户的数据模型。这在数据库模型中可能会有所不同。如果你是一家商店,你可能有2-3个不同的表来存储产品,但是你会希望通过一个API调用来暴露一个“产品”。
一旦你有你的用户面临的数据模型,开始编写测试。您需要为您的Web API控制器进行单元测试,并且需要找到一种方法来模拟您正在创建的数据库调用。测试是非常值得的努力!
为了安全,你有很多选择。您可以从东西挑喜欢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)。
一旦用户通过验证,你可以将它们分配权限。他们可以读取,写入和更新,具体取决于他们可以访问的内容。你可以有一个数据库表来控制这个潜在的。
我会建议考虑版本的时间提前。我的建议是始终有两个版本的API - 当前和以前的版本。您部署API,并在您首次替换它时支持弃用的API和新的API。不要试图支持两个以上的版本。
做最好的自己写一些种类的接口是通过Web API发送数据之前抽象的数据库。这有助于您在未来完全换出数据库,如果需要的话。它也有助于单元测试。
对于.NET的API,Microsoft has some useful guidelines和list of laws regarding API design。至于为用户提供可访问数据信息的数据字段,我认为这是个好主意。对于更多特权用户,您可以通过发送encrypted表单中的信息来增强安全性。
查看SAAS架构。 – Sebas
哪种语言? –
你可以把所有的声望花在赏金上,但除非你明确表达你的问题,否则没有人能够回答你。 “创建从数据库中检索数据的API”听起来像重新发明了轮子,或者我不明白。描述你想做什么。 – TMS