OParl / spec

Spezifikation für eine offene Schnittstelle für Ratsinformationssysteme
https://oparl.org
Creative Commons Attribution Share Alike 4.0 International
61 stars 21 forks source link

JSONP-Ausgabe #67

Closed marians closed 10 years ago

marians commented 10 years ago

JSONP ermöglicht das Ansprechen eines JSON-Webservice direkt aus einer Webanwendung über Domain-Grenzen hinweg.

Ist JSON-LD mit JSONP vereinbar?

akuckartz commented 10 years ago

JSONP ist eine wichtige Anforderung. Nach meiner Kenntnis gibt es dabei keine Probleme mit JSON-LD. Sollten wir vielleicht in einem Beispiel unter Verwendung der Beispieldaten berücksichtigen!

In dem Zusammenhang ein Hinweis auf die neue W3C Recommendation zu CORS, deren Erarbeitung fast ein ganzes Jahrzehnt gedauert hat:

Cross-Origin Resource Sharing W3C Recommendation 16 January 2014 http://www.w3.org/TR/cors/

Auf http://www.json-p.org/ gibt es ein paar kritische Anmerkungen zu CORS, die vor allem den Implemenierungsaufwand betreffen. OParl 1.0 kann CORS bestenfalls empfehlen, aber nicht zwingend fordern.

marians commented 10 years ago

Der RefServ gibt nun auch JSON-P aus. Beispiel: http://refserv.oparl.de/?callback=mycallback

Das Beispiel zeigt, dass die Links zu anderen Objekten gegenüber der einfachen JSON-Ausgabe unverändert bleiben. Das heißt, der Client muss selbst jeweils ?callback=... anhängen. Ich denke, das kann man vertreten und halte das für besser, als die Objekt-URLs dem Ausgabeformat anzupassen.

akuckartz commented 10 years ago

Das RefServ-JSON-P-Beispiel sieht gut aus. Ja, die enthaltenen URLs sollten vom Server nicht geändert werden. Darum soll sich der Client kümmern. Soweit ich das sehe ist dies so auch üblich.

marians commented 10 years ago

Ist ins Dokument eingeflossen.

lanthaler commented 10 years ago

Wird auf CORS Unterstützung komplett verzichtet? Ich denke das wäre auf jeden Fall ein Fehler. Zum einen wird es bereits sehr gut von Browsern unterstützt (http://caniuse.com/cors) und der Implementierungsaufwand ist extrem gering. In der Regel ist nur ein einziger zusätzlicher HTTP Header auszugeben: Access-Control-Allow-Origin: * (http://enable-cors.org/server.html)

Ich würde daher vorschlagen CORS als MUSS in die Spec aufzunehmen.