Hey Jonathan, Thank you for the thoughtful post. My comments are below.
On Wed, Apr 4, 2012 at 6:42 PM, <[email protected]> wrote: > > Particular details that influenced this decision: > > - The API docs (we are using > https://developers.google.com/google-apps/spreadsheets/) are not > entirely > consistent with what is happening. After a few hours of hacking > around, > for instance, I discovered that even though the docs encourage > (require?) > use of the 3.0 API, some of the things that the documentation > discusses, > such as the worksheets feed element, is only available if > GDocs-Version is > set to 1.0. Others have mentioned this in various places, sadly > without > much resolution that I can see: > > - > http://code.google.com/a/https://developers.google.com/google-apps/documents-list/google.com/p/apps-api-issues/issues/detail?id=2356<http://code.google.com/a/google.com/p/apps-api-issues/issues/detail?id=2356> > (Comment 4 especially) > > - > https://groups.google.com/forum/?fromgroups#!searchin/google-spreadsheets-api/worksheets$20feed/google-spreadsheets-api/hrMEWe3oGtU/PgxtMMEYwFYJ > > - > https://groups.google.com/forum/?fromgroups#!searchin/google-spreadsheets-api/worksheets$20feed/google-spreadsheets-api/-foRn23J_TY/Yhusg4za3cQJ > > I've responded to the thread with Alistair on it, which I think is a legitimate documentation bug. However, the code samples I think are correct. Which language are you working in? > - There is a general feeling I get from the docs and the spirit of > things > that there is not a truly stable, supportable, bankable API and > system in > place yet. I can't say much more than what is already said here: > > - > http://code.google.com/a/google.com/p/apps-api-issues/issues/detail?id=2516&can=4&q=label%3AAPI-Spreadsheets&colspec=API%20ID%20Type%20Status%20Priority%20Stars%20Opened%20Summary Please see my update to that bug. Let me tell you though, this API is stable, and not changing in this version. > - Pivots are important to us. Unless I've overlooked it in the docs, > there > is no official support for generating or manipulating pivots. Of > course we > might be able to deduce it and hack at it, but I'm not comfortable > with us > coding to undocumented APIs. > We don't have support for pivot tables in the API. We will consider adding support in a future version of the API, as this is a feature request. > - The reliance on Atom APIS, even with the 'alt=json' alternative, is > unnecessarily complicated and verbose, especially when considering > realtime needs (below). I remember 2005-6. They were heady times when > Atom, Rss, any format or protocol with the word "Open" in it, and > being > able to claim that your application re-used some other existing > protocol > for some new, unintended purpose were all badges of honor. That being > said, it's not really where we are today as developers, and a more > straightforward RPC style API would be preferable to us. Indeed, > many of > Google's own APIs as described through the discovery mechanism > (http://code.google.com/apis/discovery/) appear to follow a more RPC > approach. > Again, we will resolve this in a future version of the API that would be based on our new API infrastructure and framework. It will give JSON as a default output format. Wouldn't you agree that this is a feature request? > - Related to the point above, there do not appear to be efficient ways > to > push frequent but small updates. The docs do not discuss this, and > though > we could guess at it and experiment with various HTTP-level > strategies for > connection re-use, it would seem to make sense to introduce a > WebSockets > API for more efficient use of the network. This is admittedly minor > and > not as much of a show-stopper for us as the other things above, but > it's > worth pointing out as something that I would expect to see addressed > in a > network-based API. > This question is not clear to me, and seems a bit vague. The cells feed is capable of handling "frequent but small updates". What went wrong for you here? > - When using the GDocs UI to import a tab-separated file of >20K rows, > the > import process completed after some time but ultimately truncated the > data > set silently. The truncation part was unfortunate, but more alarming > to me > was the silence in which it occurred. Although this isn't directly > related > to the APIs, it's worth pointing out that it did nevertheless play > into > the decision and overall feeling that the system may be either a bit > immature or that there may be an issue of squashing or failing to > surface > errors properly. > Please provide your sample data set so that we can reproduce. What were the dimensions of the data set? e.g. 20K rows and X columns. Uploading this file programmatically should be done using the Documents List API: https://developers.google.com/google-apps/documents-list/ > Ultimately, I set out a goal of publishing a single snapshot of one > tabular data > set to an existing sheet that I had set up for us to try things out. > Ultimately > after 2.5 days of working with the APIs (using combinations of curl and > Go), I > wasn't able to accomplish it definitively. Although I did finally see a > path to > success (involving using GData-Version 1.0 for some calls and 3.0 for > others), I > was not able to see a final result. > My ultimate feeling was that if I, as a senior engineer, was not able to > accomplish this task in 2.5 days, and given that this was just the starting > point of our potential integration, I was uncomfortable with the longterm > prognosis. Ultimately I had to make the judgement call that the > development > cost to us and our users would be more than the IT and ops cost of setting > up a > competing reporting solution. > For what it's worth, we have a large number of users of the API who are able to use it. In this email, I have not yet seen a specific bug that stopped your implementation. Specifically what were you not able to get to work? Were you able to update a worksheet's cells? Thanks, -Vic
