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-key版本中似乎没有类似的变体。到目前为止,我已经尝试了

{: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错误,并且某些组合会在请求中的不同位置引发typeerrors。
- 文档并不十分有用。点击此处查看链接。

1 个答案

0票数

如果它在Postman上有效,那么我的猜测是Postman正在按以下方式发送您的api密钥:

header: {"Authorization" "Bearer MyLongAndComplicatedAPIKeyValue"}}

有其他方法可以通过API密钥,但我最熟悉的是这种方法。

...