From ded22e8666edb627365642aaa253e19fa4d74e50 Mon Sep 17 00:00:00 2001
From: Pascal Christoph @Messages.get("api.content_types.header")
curl http://lobid.org@routes.Application.get("DE-6")
@Messages.get("api.content_types.negotiate")
curl --header "Accept: text/csv" http://lobid.org@routes.Application.search("kunst")
curl --header "Accept: text/tab-separated-values" http://lobid.org@routes.Application.search("kunst")
curl --header "Accept: application/x-jsonlines" http://lobid.org@routes.Application.search("kunst") > kunst.jsonl
@Messages.get("api.content_types.override") @routes.Application.get("DE-6", format="json")
@Messages.get("api.content_types.dotFormat") @routes.Application.getDotFormat("DE-6", format="json")
@@ -70,6 +71,10 @@@Messages.get("api.autocomplete.intro")
@desc(Messages.get("api.autocomplete.name") + " \"format=json:name\"", routes.Application.search("name:dnb OR alternateName:dnb", format="json:name")) @@ -111,4 +116,4 @@@Html(Messages.get("search.footer.api_text", routes.Application.search(q=qParam, from=from, format="json", location=location), - routes.Application.search(q=qParam, from=from, format="csv", location=location), routes.Application.api()))
+ routes.Application.search(q=qParam, from=from, format="csv", location=location), routes.Application.search(q=qParam, from=from, format="tsv", location=location), routes.Application.api())) }} else { @if(!q.isEmpty) { } } } -}} \ No newline at end of file +}} diff --git a/conf/dataset.jsonld b/conf/dataset.jsonld index ee821109..7e0eeef1 100644 --- a/conf/dataset.jsonld +++ b/conf/dataset.jsonld @@ -137,6 +137,7 @@ "documentation": "http://lobid.org/organisations/api", "encodingFormat": [ "text/csv", + "text/tab-separated-values", "application/json", "application/ld+json" ], diff --git a/conf/messages.de b/conf/messages.de index ea2e26b7..bbb97817 100644 --- a/conf/messages.de +++ b/conf/messages.de @@ -37,7 +37,7 @@ search.location = Standort search.prev = vorige search.next = nächste search.total_results = Trefferzahl -search.footer.api_text = Sie können auf diese Daten auch als JSON oder CSV über unsere Programmierschnittstelle zugreifen. +search.footer.api_text = Sie können auf diese Daten auch als JSON oder CSV (resp. TSV TSV) über unsere Programmierschnittstelle zugreifen. search.footer.no_results = Keine Ergebnisse für{0}
.
search.type = Typ
search.collects = Bestandsgröße
@@ -64,7 +64,7 @@ api.location.distance = Suche über Distanz zu einem Punkt ("location": Koordina
api.content_types.header = Inhaltstypen
api.content_types.default = Standardmäßig liefert dieser Dienst strukturierte API-Antworten (als JSON):
-api.content_types.negotiate = Er unterstützt Content-Negotiation über den Accept-Header für JSON (application/json), CSV (text/csv), JSON lines (application/x-jsonlines) oder HTML (text/html):
+api.content_types.negotiate = Er unterstützt Content-Negotiation über den Accept-Header für JSON (application/json), CSV (text/csv), TSV (text/tab-separated-values), JSON lines (application/x-jsonlines) oder HTML (text/html):
api.content_types.override = Der Query-Parameter "format" kann verwendet werden, um den Accept-Header aufzuheben, z.B. zur Anzeige von JSON im Browser:
api.content_types.dotFormat = Der Wert des Format-Parameters kann für Einzeltreffer auch in URLs als Dateiendung verwendet werden:
api.content_types.compress = Für größere Anfragen kann die Antwort als gzip komprimiert werden:
@@ -74,6 +74,10 @@ api.csv.header = CSV-Export
api.csv.default = Standardfelder ("format=csv")
api.csv.custom = Benutzerdefinierte Felder ("format": zu verwendende Felder, mit Punkten für geschachtelte Felder im Format "csv:feld1,feld2.unterfeld")
+api.tsv.header = TSV-Export
+api.tsv.default = Standardfelder ("format=tsv")
+api.tsv.custom = Benutzerdefinierte Felder ("format": zu verwendende Felder, mit Punkten für geschachtelte Felder im Format "tsv:feld1,feld2.unterfeld")
+
api.autocomplete.header = Autovervollständigung
api.autocomplete.intro = Die API unterstützt ein spezielles Antwortformat mit Vorschlägen zur Vervollständigung aus einem angegebenen Feld:
api.autocomplete.name = Name vorschlagen:
diff --git a/conf/messages.en b/conf/messages.en
index 200f8505..1caa8317 100644
--- a/conf/messages.en
+++ b/conf/messages.en
@@ -37,7 +37,7 @@ search.location = Location
search.prev = prev
search.next = next
search.total_results = Total results
-search.footer.api_text = You can also access this data as JSON or CSV using our API.
+search.footer.api_text = You can also access this data as JSON or CSV (resp. TSV) using our API.
search.footer.no_results = No results for {0}
.
search.type = Type
search.collects = Stock size
@@ -64,7 +64,7 @@ api.location.distance = Query with distance ("location": coordinate of a point a
api.content_types.header = Content types
api.content_types.default = By default, this service returns structured API responses (as JSON):
-api.content_types.negotiate = It supports content negotiation based on the "Accept" header to serve JSON (application/json), CSV (text/csv), JSON lines (application/x-jsonlines), or HTML (text/html):
+api.content_types.negotiate = It supports content negotiation based on the "Accept" header to serve JSON (application/json), CSV (text/csv), TSV (text/tab-separated-values), JSON lines (application/x-jsonlines), or HTML (text/html):
api.content_types.override = An optional "format" query parameter can be used to override the "Accept" header, e.g. to display JSON in a browser:
api.content_types.dotFormat = For individual organisations, the format parameter values can be used as file extensions in URLs:
api.content_types.compress = For larger requests, the response can be compressed as gzip:
@@ -74,6 +74,10 @@ api.csv.header = CSV export
api.csv.default = Default fields ("format=csv")
api.csv.custom = Custom fields ("format": fields to use, with dots for nested fields "csv:field1,field2.subfield")
+api.tsv.header = TSV export
+api.tsv.default = Default fields ("format=tsv")
+api.tsv.custom = Custom fields ("format": fields to use, with dots for nested fields "tsv:field1,field2.subfield")
+
api.autocomplete.header = Auto-complete
api.autocomplete.intro = The API supports a response format for auto-complete suggestions using a specified field:
api.autocomplete.name = Suggest name:
From c5b5b281838c96cca6e59c0d0b82efa7c8222e3a Mon Sep 17 00:00:00 2001
From: Pascal Christoph J)(lYyQ1kItoa2CREud1?qW}t
zM4Dkg^u(WZ_eR(ZM4m(7XDhLZ?W2K;DP&7Sv38K>`~~8??IrDMDYinNha}2FiOrT>
z8fWDINp)=E?=H;RV^ycIj%P?dzqq-zv{ikudG9{VMbCj6I~)g<*PUTb3Et$Cl1&4S
zF!BbzQPAALhcANgend4zG<$b1djlMPRjCH?SE
zxUM|3v~V+buR}bV$`%F9=jpee08vsxGU&dmkL&kwU4VNL*{Lh%c=D|fAS$aUt*cYf
zJIK_e$vkau$TD*fK(;%`P5gN0I(hyYc}(r@5Cc>|cyDY4;B0o{eVYFY)!cJI9_Igu
z&R`fve7qW#2C#(wl0FFfV0VS&Dttg#;D3c}$nKsPE^(zGf~r6_qAm{(f~Z@U3!ib2
zOUw>Y`U`plwG}KfF6|@k?)e$nakeX>#?-}twJtAejD-@~@U(Tkpxhp^dDFTGX-
lZ#Ybdj*Qf}-&1Z23ys(u1*1@eZXyPs
zQzo4~Zs0`P*DJP8`wsm0-Elk}M;@ZDBDwrB5pAju-L_VvYSfSD*Jo^h>
z)_v3%TO3
#<5k%ms%5K^Q|&Oxjh$St(@22Vv;fqjyxpSR25^PuzM2`o8C-Mqr~?`-IdH1t^iw
zGF0S4P6XHZ1;Z+^nFg|QY09wK^x=85pL#=RK2{alULraf@bqyyLM{IitnOEr%)uJ;
z!X0R>z&5-{lwiIP>C(k_`ItA4rk^Cg$UGhi@>%ZPO8M$o+?CXo4eJiXuqBM9%H&_N
z6^w{VM$XFQt4X3p{$)JYuZmG&Z6bLpROrj#eZlrl+U?a|B*G
zHc1^7C5tpimnI?g11nPU3)2hbLdQ(UECd-t7q}dAiZ(DZfZdE26677MdE^yK&1E37
z3#P!5Eme>&05T=xzgEVQ4@ER;0^o81G)+ctkOHuT-2h!@C>c+Z?{fT-zgX(|F^%R|
zi7M6MMPYK=DsdcOO-OTdwoMXylf9zn>U-Zl>&$YQF?Y=u(HzXP2!r}XM}>=jR()ub
z9Eci{Vha&PnztoXV|47~q6gfxGkv4Y>OtBt0M51kOfuk{>Td1Drc=AmApJLxE@D7#
zJA^t9>L>ql**Wsg8f75q7D(*z%8+;be9mo_rv$}pS*cup_2i-Bhff@I{rb|Wrk1S7
zdB+!3(4JLPQ9M2m>GY!7+NF*1ZOtvW4=NAbsyUUpo4J%5+O$+29IQ#&sysnv{q>j(
zOC#d+6Q67700uWts307!ClPdAqyT{m2aY9N8Z6xfpf->xbc}d_0$@i^T++-~CHjhg
zIsJrxG6(3oF+ikclI~8#|B7fBmf)wvI~yS$3Nh~jHr4CA3ou8W0C0f7oo!v