import: json: Accept '#:http-fetch' in 'json-fetch'.
For example, supplying 'http-fetch/cached' would enable caching. * guix/import/json.scm (json-fetch): Add '#:http-fetch' argument. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
parent
ae533e3084
commit
9a47fd56dd
|
@ -35,13 +35,16 @@
|
||||||
json->scheme-file))
|
json->scheme-file))
|
||||||
|
|
||||||
(define* (json-fetch url
|
(define* (json-fetch url
|
||||||
|
#:key
|
||||||
|
(http-fetch http-fetch)
|
||||||
;; Note: many websites returns 403 if we omit a
|
;; Note: many websites returns 403 if we omit a
|
||||||
;; 'User-Agent' header.
|
;; 'User-Agent' header.
|
||||||
#:key (headers `((user-agent . "GNU Guile")
|
(headers `((user-agent . "GNU Guile")
|
||||||
(Accept . "application/json"))))
|
(Accept . "application/json"))))
|
||||||
"Return a representation of the JSON resource URL (a list or hash table), or
|
"Return a representation of the JSON resource URL (a list or hash table), or
|
||||||
#f if URL returns 403 or 404. HEADERS is a list of HTTP headers to pass in
|
#f if URL returns 403 or 404. HEADERS is a list of HTTP headers to pass in
|
||||||
the query."
|
the query. HTTP-FETCH is called to perform the request: for example, to
|
||||||
|
enable caching, supply 'http-fetch/cached'."
|
||||||
(guard (c ((and (http-get-error? c)
|
(guard (c ((and (http-get-error? c)
|
||||||
(let ((error (http-get-error-code c)))
|
(let ((error (http-get-error-code c)))
|
||||||
(or (= 403 error)
|
(or (= 403 error)
|
||||||
|
|
Reference in New Issue