about summary refs log tree commit diff
path: root/web
diff options
context:
space:
mode:
authorMunyoki Kilyungi2026-01-14 16:45:31 +0300
committerMunyoki Kilyungi2026-01-14 16:45:31 +0300
commit45662839565f6482e7f034a07ae373bbeaeb9713 (patch)
tree8d32c026bf05dac936d2c992cd6c1d0a18d83947 /web
parent6d2ff305e578274265cbf52e1cb6a2a578cfc965 (diff)
downloadgn-guile-45662839565f6482e7f034a07ae373bbeaeb9713.tar.gz
Add RDF end-points for resolving RDF urls. HEAD main
Signed-off-by: Munyoki Kilyungi <me@bonfacemunyoki.com>
Diffstat (limited to 'web')
-rw-r--r--web/webserver.scm25
1 files changed, 25 insertions, 0 deletions
diff --git a/web/webserver.scm b/web/webserver.scm
index 0c0bdd1..e2412d2 100644
--- a/web/webserver.scm
+++ b/web/webserver.scm
@@ -327,6 +327,31 @@ otherwise search for set/group data"
                 #\n)
           (render-json (get-id-data (list->string name))))
          (rest (render-json "NOP")))))
+    ;; RDF End-points
+    (('GET "v1" "id" id)
+     (receive (sparql-header sparql-resp)
+	 (sparql-http-get
+	  (or (getenv "SPARQL-ENDPOINT") "http://localhost:8890/sparql/")
+	  (sparql-by-term 'gn id))
+       (list '((content-type text/html))
+	     (lambda (port)
+	       (put-string port sparql-resp)))))
+    (('GET "v1" "category" category)
+     (receive (sparql-header sparql-resp)
+	 (sparql-http-get
+	  (or (getenv "SPARQL-ENDPOINT") "http://localhost:8890/sparql/")
+	  (sparql-by-term 'gnc category))
+       (list '((content-type text/html))
+	     (lambda (port)
+	       (put-string port sparql-resp)))))
+    (('GET "v1" "term" term)
+     (receive (sparql-header sparql-resp)
+	 (sparql-http-get
+	  (or (getenv "SPARQL-ENDPOINT") "http://localhost:8890/sparql/")
+	  (sparql-by-term 'gnt term))
+       (list '((content-type text/html))
+	     (lambda (port)
+	       (put-string port sparql-resp)))))
     (_ (not-found (request-uri request)))))
 
 (define (request-path-components request)