gpt4 book ai didi

stormpath - 如何在 Stormpath 中通过 ID 和 customData 搜索用户

转载 作者:行者123 更新时间:2023-12-04 17:22:06 24 4
gpt4 key购买 nike

我正在考虑使用 Stormpath 和它的 Java API 作为用户存储。

看起来不错,只是我无法搜索用户。

例如,我收到此错误:

Exception in thread "main" com.stormpath.sdk.resource.ResourceException: HTTP 400, Stormpath 2105 (http://docs.stormpath.com/errors/2105): Account ID is not a supported query property.

当我执行此查询时:
HashMap<String, Object> queryParams = Maps.newHashMap();
queryParams.put("ID", "4mPXXXXXXXXXX");
searchResult = application.getAccounts(queryParams);

然而,通过电子邮件搜索用户是有效的。当我尝试通过存储在 customData 属性中的登录 token 搜索用户时,我遇到了同样的错误。

看起来我想要做的事情是不可能的,因为看起来您可以查询的唯一属性是电子邮件和用户名。但是,如果它不起作用,他们为什么要提供此功能。我错过了什么?

最佳答案

常见的关系数据库行为与 REST API 中的行为之间存在阻抗不匹配。按 id 查询虽然在关系数据库中很常见,但并不是 REST API(或大多数基于 HTTP 的网站)的惯用行为。 URL (href) 是指向网络资源的规范“指针”。换句话说,在 REST API 中,规范标识符是 href。 href 中的任何标记(任何内部“id”、特殊字符等)都应该对 REST 客户端不透明,并被客户端完全忽略。 URL 是 HTTP 和 REST 中的王者。

在这种情况下,Stormpath SDK 尝试忠实于 RESTful 最佳实践,因此您可以使用 client.getResource 获取任何 Stormpath 资源。方法,它接受一个 href 和您希望 href 表示的对象类型:

String href = "https://api.stormpath.com/v1/accounts/" + id;
Account account = client.getResource(href, Account.class);

也就是说,希望它在客户端 API 中更方便地表示并没有错,例如, client.getAccount(String id)如果您想保留 ID 的概念。如果是,请开新 feature request我们很乐意考虑它。

至于可查询 Account属性,这些是 documented here . Stormpath 很快也会使自定义数据中的数据也可搜索。虽然 Stormpath 功能时间表从未公布,但它是公司的最高工程优先级,应该很快就会出来。

对某些人有用的一种解决方法是将他们想要搜索的数据存储在您不在应用程序中使用的帐户字段中。例如,您可以使用“中间名”字段来存储喜欢的颜色。在自定义数据搜索可用之前,这只是暂时的。哼!

关于stormpath - 如何在 Stormpath 中通过 ID 和 customData 搜索用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28136157/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com