[vz-dev] JSONP exception handling

2013-09-26 Thread Andreas Goetz
Hallo Zusammen,

wenn in der MW eine Exception auftritt wird diese vom JSON view an den
Aufrufer zurückgesandt (z.B. "invalid uuid").
Bei JSONP funktioniert das nicht, weil bei HTTP Response Code 400 das JSONP
Skript von remote gar nicht erst ausgeführt wird.

Einen RFC für JSONP konnte ich nicht finden, daher meine Frage bevor ich
einen Patch bereitstelle: sollten wir bei JSONP nicht _immer_ HTTP 200 OK
zurückgeben statt 400 oder sonstiger Codes?

Das Frontend wäre von dieser Änderung nicht betroffen- hier werden
Exceptions auch bei HTTP 200 sauber behandelt soweit ich den Code gesehen
habe.

+1 für den Patch von mir- was meint Ihr?

vg
Andreas

PS.: ich würde dann auch gerne- zusammen mit den sonstigen Änderungen- die
MW Version auf 0.3 erhöhen und die entsprechende Doku im Wiki anpassen.


Re: [vz-dev] JSONP exception handling

2013-09-26 Thread Patrik Karisch
Servus,

Eine gnereller Responsecode von 200 widerspricht aber grob REST-Paradigmen.
Besser man wechselt auf CORS-Header Webserverseitig, dann benötigt es kein
JSONP mehr.
Am 26.09.2013 13:33 schrieb "Andreas Goetz" :

> Hallo Zusammen,
>
> wenn in der MW eine Exception auftritt wird diese vom JSON view an den
> Aufrufer zurückgesandt (z.B. "invalid uuid").
> Bei JSONP funktioniert das nicht, weil bei HTTP Response Code 400 das
> JSONP Skript von remote gar nicht erst ausgeführt wird.
>
> Einen RFC für JSONP konnte ich nicht finden, daher meine Frage bevor ich
> einen Patch bereitstelle: sollten wir bei JSONP nicht _immer_ HTTP 200 OK
> zurückgeben statt 400 oder sonstiger Codes?
>
> Das Frontend wäre von dieser Änderung nicht betroffen- hier werden
> Exceptions auch bei HTTP 200 sauber behandelt soweit ich den Code gesehen
> habe.
>
> +1 für den Patch von mir- was meint Ihr?
>
> vg
> Andreas
>
> PS.: ich würde dann auch gerne- zusammen mit den sonstigen Änderungen- die
> MW Version auf 0.3 erhöhen und die entsprechende Doku im Wiki anpassen.
>
>


Re: [vz-dev] JSONP exception handling

2013-09-26 Thread Andreas Goetz
Hallo Patrick,

das kann alles sein. Da wir Clients mit JSON(P) haben würde ich jetzt aber
gerne erstmal das Problem lösen. CORS zusätzlich zu implementieren ist eine
nette Aufgabe die ich ebenfalls übernehmen würde.

vg
Andreas



2013/9/26 Patrik Karisch 

> Servus,
>
> Eine gnereller Responsecode von 200 widerspricht aber grob
> REST-Paradigmen. Besser man wechselt auf CORS-Header Webserverseitig, dann
> benötigt es kein JSONP mehr.
> Am 26.09.2013 13:33 schrieb "Andreas Goetz" :
>
> Hallo Zusammen,
>>
>> wenn in der MW eine Exception auftritt wird diese vom JSON view an den
>> Aufrufer zurückgesandt (z.B. "invalid uuid").
>> Bei JSONP funktioniert das nicht, weil bei HTTP Response Code 400 das
>> JSONP Skript von remote gar nicht erst ausgeführt wird.
>>
>> Einen RFC für JSONP konnte ich nicht finden, daher meine Frage bevor ich
>> einen Patch bereitstelle: sollten wir bei JSONP nicht _immer_ HTTP 200 OK
>> zurückgeben statt 400 oder sonstiger Codes?
>>
>> Das Frontend wäre von dieser Änderung nicht betroffen- hier werden
>> Exceptions auch bei HTTP 200 sauber behandelt soweit ich den Code gesehen
>> habe.
>>
>> +1 für den Patch von mir- was meint Ihr?
>>
>> vg
>> Andreas
>>
>> PS.: ich würde dann auch gerne- zusammen mit den sonstigen Änderungen-
>> die MW Version auf 0.3 erhöhen und die entsprechende Doku im Wiki anpassen.
>>
>>


Re: [vz-dev] JSONP exception handling

2013-09-26 Thread Patrik Karisch
CORS ist mit einer .htaccess sofort aktiviert:

Header set Access-Control-Allow-Origin "*"

JS-seitig muss nur herausgenommen werden, das JSONP verwendet wird.
Ansonsten ist das Handling wie beim normalen JSON über die selbe
Domain. Kein Unterschied. Höchstens Serverseitig muss man noch eine
OPTIONS Anfrage korrekt handlen, sollten PUT und DELETE-Requests oder
POSTs mit nicht x-www-urlencoded Daten. Da wird vom Browser ein
"Pre-Flight" ausgeführt. Siehe
https://developer.mozilla.org/en-US/docs/HTTP/Access_control_CORS#Preflighted_requests

Ansichtssache, aber beides dürfte auf die selbe Schreiberei hinauslaufen..

lg

Am 26. September 2013 16:44 schrieb Andreas Goetz :
> Hallo Patrick,
>
> das kann alles sein. Da wir Clients mit JSON(P) haben würde ich jetzt aber
> gerne erstmal das Problem lösen. CORS zusätzlich zu implementieren ist eine
> nette Aufgabe die ich ebenfalls übernehmen würde.
>
> vg
> Andreas
>
>
>
> 2013/9/26 Patrik Karisch 
>>
>> Servus,
>>
>> Eine gnereller Responsecode von 200 widerspricht aber grob
>> REST-Paradigmen. Besser man wechselt auf CORS-Header Webserverseitig, dann
>> benötigt es kein JSONP mehr.
>>
>> Am 26.09.2013 13:33 schrieb "Andreas Goetz" :
>>
>>> Hallo Zusammen,
>>>
>>> wenn in der MW eine Exception auftritt wird diese vom JSON view an den
>>> Aufrufer zurückgesandt (z.B. "invalid uuid").
>>> Bei JSONP funktioniert das nicht, weil bei HTTP Response Code 400 das
>>> JSONP Skript von remote gar nicht erst ausgeführt wird.
>>>
>>> Einen RFC für JSONP konnte ich nicht finden, daher meine Frage bevor ich
>>> einen Patch bereitstelle: sollten wir bei JSONP nicht _immer_ HTTP 200 OK
>>> zurückgeben statt 400 oder sonstiger Codes?
>>>
>>> Das Frontend wäre von dieser Änderung nicht betroffen- hier werden
>>> Exceptions auch bei HTTP 200 sauber behandelt soweit ich den Code gesehen
>>> habe.
>>>
>>> +1 für den Patch von mir- was meint Ihr?
>>>
>>> vg
>>> Andreas
>>>
>>> PS.: ich würde dann auch gerne- zusammen mit den sonstigen Änderungen-
>>> die MW Version auf 0.3 erhöhen und die entsprechende Doku im Wiki anpassen.
>>>
>



-- 
mit freundlichen Grüßen // best regards

Patrik Karisch


Re: [vz-dev] JSONP exception handling

2013-09-26 Thread Thorben Thuermer
On Thu, 26 Sep 2013 16:26:19 +0200
Patrik Karisch  wrote:
> Eine gnereller Responsecode von 200 widerspricht aber grob
> REST-Paradigmen. Besser man wechselt auf CORS-Header Webserverseitig,
> dann benötigt es kein JSONP mehr.

OK,
wir bekommen dann also zwei patches,
einen von Andreas um bei jsonp fehlermeldungen als 200/OK auszuliefern,
einen von Patrick fuer das viel elegantere CORS;
desweiteren bringt Patrick allen unseren (l)usern bei,
ihren webserver entsprechend zu konfigurieren, und kuemmert sich um
alle anfallenden support-anfragen diesbezueglich.

- Thorben

> Am 26.09.2013 13:33 schrieb "Andreas Goetz" :
> 
> > Hallo Zusammen,
> >
> > wenn in der MW eine Exception auftritt wird diese vom JSON view an
> > den Aufrufer zurückgesandt (z.B. "invalid uuid").
> > Bei JSONP funktioniert das nicht, weil bei HTTP Response Code 400
> > das JSONP Skript von remote gar nicht erst ausgeführt wird.
> >
> > Einen RFC für JSONP konnte ich nicht finden, daher meine Frage
> > bevor ich einen Patch bereitstelle: sollten wir bei JSONP nicht
> > _immer_ HTTP 200 OK zurückgeben statt 400 oder sonstiger Codes?
> >
> > Das Frontend wäre von dieser Änderung nicht betroffen- hier werden
> > Exceptions auch bei HTTP 200 sauber behandelt soweit ich den Code
> > gesehen habe.
> >
> > +1 für den Patch von mir- was meint Ihr?
> >
> > vg
> > Andreas
> >
> > PS.: ich würde dann auch gerne- zusammen mit den sonstigen
> > Änderungen- die MW Version auf 0.3 erhöhen und die entsprechende
> > Doku im Wiki anpassen.
> >
> >



Re: [vz-dev] JSONP exception handling

2013-09-26 Thread Andreas Goetz
Moin,

das ging tatsächlich verblüffend einfach- deshalb hab ich mir die Freiheit
genommen die 5 geänderten Teilen in einen Pullrequest zu packen:

The following changes since commit 1670af32d3986887f754ad785628b003243cf3cf:

  Fix JSONP exception handling and add CORS support
  Also fixed an artifact in AggregatorInterpreter (2013-09-26 20:42:29
+0200)

are available in the git repository at:

  htto://github.com/volkszaehler/volkszaehler.org

for you to fetch changes up to 1670af32d3986887f754ad785628b003243cf3cf:

  Fix JSONP exception handling and add CORS support Also fixed an artifact
in AggregatorInterpreter (2013-09-26 20:42:29 +0200)

Wie siehts denn mit VZ_VERSION aus- wollen wir auf 0.3 gehen? Damit könnte
ich das Dokuupdate im Wiki sauber einem Releasestand zuordnen?

vg
Andreas



2013/9/26 Thorben Thuermer 

> On Thu, 26 Sep 2013 16:26:19 +0200
> Patrik Karisch  wrote:
> > Eine gnereller Responsecode von 200 widerspricht aber grob
> > REST-Paradigmen. Besser man wechselt auf CORS-Header Webserverseitig,
> > dann benötigt es kein JSONP mehr.
>
> OK,
> wir bekommen dann also zwei patches,
> einen von Andreas um bei jsonp fehlermeldungen als 200/OK auszuliefern,
> einen von Patrick fuer das viel elegantere CORS;
> desweiteren bringt Patrick allen unseren (l)usern bei,
> ihren webserver entsprechend zu konfigurieren, und kuemmert sich um
> alle anfallenden support-anfragen diesbezueglich.
>
> - Thorben
>
> > Am 26.09.2013 13:33 schrieb "Andreas Goetz" :
> >
> > > Hallo Zusammen,
> > >
> > > wenn in der MW eine Exception auftritt wird diese vom JSON view an
> > > den Aufrufer zurückgesandt (z.B. "invalid uuid").
> > > Bei JSONP funktioniert das nicht, weil bei HTTP Response Code 400
> > > das JSONP Skript von remote gar nicht erst ausgeführt wird.
> > >
> > > Einen RFC für JSONP konnte ich nicht finden, daher meine Frage
> > > bevor ich einen Patch bereitstelle: sollten wir bei JSONP nicht
> > > _immer_ HTTP 200 OK zurückgeben statt 400 oder sonstiger Codes?
> > >
> > > Das Frontend wäre von dieser Änderung nicht betroffen- hier werden
> > > Exceptions auch bei HTTP 200 sauber behandelt soweit ich den Code
> > > gesehen habe.
> > >
> > > +1 für den Patch von mir- was meint Ihr?
> > >
> > > vg
> > > Andreas
> > >
> > > PS.: ich würde dann auch gerne- zusammen mit den sonstigen
> > > Änderungen- die MW Version auf 0.3 erhöhen und die entsprechende
> > > Doku im Wiki anpassen.
> > >
> > >
>
>


Re: [vz-dev] JSONP exception handling

2013-09-26 Thread Thorben Thuermer
On Thu, 26 Sep 2013 20:44:41 +0200
Andreas Goetz  wrote:
> das ging tatsächlich verblüffend einfach- deshalb hab ich mir die Freiheit
> genommen die 5 geänderten Teilen in einen Pullrequest zu packen:

ist ja eh voellig unkritisch, zumal das frontend damit weiterhin jsonp
verwendet.
(ist gemerged)

> Wie siehts denn mit VZ_VERSION aus- wollen wir auf 0.3 gehen? Damit könnte
> ich das Dokuupdate im Wiki sauber einem Releasestand zuordnen?

habe ich ueberhaupt kein problem mit, und ich denke auch niemand sonst,
also mach' einfach...

wobei ich nicht ganz einschaetzen kann, wie stabil die api ueberhaupt ist
(es gab iirc schon andere aenderungen im verhalten und den rueckgaben),
und eher in der doku anmerken wuerde, seit welcher revision ein bestimmtes
feature/verhalten vorhanden ist.  
die doku fuer die alte version duerfte eh kaum mehr jemanden interessieren.

> vg
> Andreas

- Thorben

> 2013/9/26 Thorben Thuermer 
> 
> > On Thu, 26 Sep 2013 16:26:19 +0200
> > Patrik Karisch  wrote:
> > > Eine gnereller Responsecode von 200 widerspricht aber grob
> > > REST-Paradigmen. Besser man wechselt auf CORS-Header Webserverseitig,
> > > dann benötigt es kein JSONP mehr.
> >
> > OK,
> > wir bekommen dann also zwei patches,
> > einen von Andreas um bei jsonp fehlermeldungen als 200/OK auszuliefern,
> > einen von Patrick fuer das viel elegantere CORS;
> > desweiteren bringt Patrick allen unseren (l)usern bei,
> > ihren webserver entsprechend zu konfigurieren, und kuemmert sich um
> > alle anfallenden support-anfragen diesbezueglich.
> >
> > - Thorben
> >
> > > Am 26.09.2013 13:33 schrieb "Andreas Goetz" :
> > >
> > > > Hallo Zusammen,
> > > >
> > > > wenn in der MW eine Exception auftritt wird diese vom JSON view an
> > > > den Aufrufer zurückgesandt (z.B. "invalid uuid").
> > > > Bei JSONP funktioniert das nicht, weil bei HTTP Response Code 400
> > > > das JSONP Skript von remote gar nicht erst ausgeführt wird.
> > > >
> > > > Einen RFC für JSONP konnte ich nicht finden, daher meine Frage
> > > > bevor ich einen Patch bereitstelle: sollten wir bei JSONP nicht
> > > > _immer_ HTTP 200 OK zurückgeben statt 400 oder sonstiger Codes?
> > > >
> > > > Das Frontend wäre von dieser Änderung nicht betroffen- hier werden
> > > > Exceptions auch bei HTTP 200 sauber behandelt soweit ich den Code
> > > > gesehen habe.
> > > >
> > > > +1 für den Patch von mir- was meint Ihr?
> > > >
> > > > vg
> > > > Andreas
> > > >
> > > > PS.: ich würde dann auch gerne- zusammen mit den sonstigen
> > > > Änderungen- die MW Version auf 0.3 erhöhen und die entsprechende
> > > > Doku im Wiki anpassen.
> > > >
> > > >
> >
> >