我正在尝试使用 StrawberryShake.Tools 命令在 Visual Studio 2022 中初始化新的 graphQL 客户端:
dotnet graphql init {Endpoint}
但是总是失败并出现错误
错误 HTTP_ERROR:响应状态代码不表示成功:405(方法不允许)
经过一些研究并从 GraphQL 服务器开发人员那里得到很少的帮助后,我运行的假设是服务器根本不允许此操作,因此我无法使用该工具来初始化客户端。
如果有人知道我如何实际使用这个工具,我很想知道。我相信 GraphQL 端点需要一个不记名令牌。我也尝试过使用 --scheme Bearer {Token} 选项,它返回相同的结果。
由于我似乎无法实际使用该工具来初始化客户端,因此我开始尝试手动设置架构和
graphqlrc.json
文件以查看它是否仍然有效。
我能够使用构建应用程序的开发人员向我提供的手动查询从服务器中提取架构文本。 我从网上找到的模板添加了
schema.graphql
文件和 graphqlrc.json
文件。
安装 nuget 包和
query.graphql
文件后,我尝试了各种方法来让它通过构建自动生成 C# 代码。
我尝试过的事情包括:
无论我尝试什么,它都不会生成任何生成的代码。 我想知道在这个过程中是否遗漏了一些东西,或者运行
dotnet graphql init
命令时是否进行了一些其他修改,而我在手动设置中遗漏了这些内容。
有人有什么想法让我尝试吗?
我之前描述过我尝试过的事情。
端点是wi-fibre.sonar.software/graphiql这是云应用程序sonar.software的一个实例,它是一个针对WISP和FISP的云CRM IPAM和库存管理系统。以下是有关如何使用其 API 的文档的链接。 docs.sonar.expert/system/consuming-the-sonar-api 文档确认它由 HTTPS 提供服务并且仅使用 POST 动词。
我最终与一位应用程序开发人员交谈,他解释说我使用了错误的端点。我使用的是 graphiql Web 应用程序的地址,您可以在其中手动运行查询,并且端点不同。 我仍然不清楚这是否是常见做法,但这是简单的答案。
在更正端点后,我确实被卡住了一分钟,因为它一直给我一个未经授权的 401 响应。我使用 --token 标志来发送我的 init 的身份验证令牌。文档表明默认令牌方案是 Bearer,但我必须使用 --scheme Bearer 标志来指定它。一旦我添加了它,就没有任何问题了。