Issues with the API:

* Some error responses (notably token failures) don't respect Accept:

They always return HTML responses.

* Certain error responses lack the error key.

* No charset information.

* DELETE /gdc/md/<project_id> returns 200:

And same contant as GET of the resource.

* Report without reportdefinitions was seen in real life:

URI: /gdc/md/i729zexwpdr03c4hjf1vktrlwa5m590q/obj/7610
When POSTed to xtab2 executor3: 500 Internal Server Error
Missing ReportID in Storage.pm-&gt;Register() at /opt/common/lib/XTabLib/Storage.pm line 191.

* Inconsitency in "self" links:

{report}{meta}{uri}
{project}{meta}{self}

* Crappy diagnostics from chart exporter:

Exporter worker returned ERROR status at lib/WWW/GoodData/Agent.pm line 146.
This happened once without a good reason and retry succeeded.

* Invalid structure errors are really hard to grok.

* Chart PDF exports have weird title.

* Nearly all 405 responses lack Allow headers:

Plain violation of 2616.

* MAQL can not be 0 characters.

* ;s are insterted into MAQL on line breaks:

Renders MAQL "#\n" invalid:
Detected invalid maql statement(s): got ';' at {"line":2,"column":1}, but ['' | 'IDENTIFIER' | 'SYNCHRONIZE' | 'DROP' | 'DEFINE' | 'OBJECT' | 'ALTER' | 'INCLUDE' | 'CREATE' | 'SELECT'] is expected. at lib/WWW/GoodData/Agent.pm line 144.

* No way to navigate to secure-di.

* https://secure-di.gooddata.com/gdc/uploads/nonexistent:

Returns same as https://secure-di.gooddata.com/gdc/uploads instead of 404
