请分享您的想法:2024年Clojure状态调查!

欢迎!请参阅关于页面,了解如何使用本服务的一些更多信息。

0
语法和读者

我需要在Clojure中使用http-kit进行API调用,其中它使用API密钥进行授权。即在Postman中,您通常会选择添加api-key,api-value并将其添加到header或query-params。

我知道在基本认证的情况下是这样的方式

{:url "<api-url>"
 :method :post
 :headers {"Content-Type" "application/json"}
 :basic-auth [<username> <password>]
 :body <body>)}

我需要在Clojure中使用http-kit进行API调用,其中使用API密钥进行授权。即在Postman中,您通常会选择添加api-key,api-value并将其添加到header或query-params。

我知道在基本认证的情况下是这样的方式

{:url "<api-url>" :method :post :headers {"Content-Type" "application/json"} :basic-auth [<username> <password>] :body <body>})

但类似于API密钥版本的变体不起作用。迄今为止,我已经尝试过

{:basic-auth [<api-key> <api-value>]}

{:query-params {<api-key> <api-value>}}

{:query-params {:key <api-key>, :value <api-value>}}

{:headers {"Content-Type" "application/json", 
                    <api-key> <api-value>}

{:api-key [<api-key> <api-value>]}

{:api-key {<api-key> <api-value>}

和其他变体,但看起来不起作用。

注意
- 在Postman中授权工作,但我无法在那里测试完整的API调用,因为正文太长、太复杂,无法复制,而且应用程序中的授权不起作用。
- 我始终以401错误返回,一些组合会在请求中放置位置时引发typeerror。
- 文档并不那么有用。请参阅此处链接。

1回答

0

如果它在Postman中工作,我的猜测是Postman通过以下方式发送您的API密钥

{:headers {"Authorization" "Bearer MyLongAndComplicatedAPIKeyValue"}}`

还有其他传递API密钥的方式,但我最熟悉的就是这种方式。

...