首页 > 解决方案 > 如何正确公开 Cassandra 实体的 REST API

问题描述

虽然我知道不建议公开依赖于数据库的 ID,而且使用经典关系数据库似乎很容易避免,但我想知道在使用要避免搜索索引和复杂(长)复合的 nosql 数据库时如何避免性能影响密钥不应该暴露在端点上。

例如,在 Cassandra 中,可用查询链接到数据库模式,因此在不添加索引的情况下,如何实现对此类实体进行操作的 API 以及相应的(非常长的复合)ID?

例如,如何实现 REST API 来检查表中是否存在如下所示的条目:

TABLE A (
  ...,
  PRIMARY KEY ((pk1, pk2), ck1, ck2, ck3, ck4, ck5)
)

相应的端点看起来像这样(或者至少在某个地方包含 URL 中的所有主键组件)

   GET /v1/A/pk1/pk2/ck1/ck2/ck3/ck4/ck5

这看起来很复杂,如果查询项目列表会很快导致很长的 URL。

这个问题一般是怎么处理的?

标签: resthttpurlcassandra

解决方案


推荐阅读