Changes and new stuff in the API

Hi there

Anyone else want to start a list of “this would be lovely (or
essential) to have”?

here’s mine:

** Invoices: if I make a new one, and reference is manditory, I need
to be able to get the next sequence number. Better yet, make it
optional, and FA works out the next reference number.

** Timeslips: a timeslip level user can submit a timeslip, but the
project id and task id are mandatory, and they can’t get a list of
those. Need another end point - or the same one with different data? -
with projects and tasks for limited users.

** Marking timeslips as “used” in an invoice - and getting a list of
un-used ones - would be nice.

(can you tell I’m getting a few requests for invoices in mobileagent???)

** Dashboard: all the info please. :slight_smile: Read only is fine. Esp invoice
payment timeline (with project-id, contact-id, not just text!), active
projects with unbilled, and P+L

** Multiple calls are expensive. So if I want to (for eg) get 10
different contacts, I’d love to be able to do this:

GET /contacts?ids=123,456,789,124,145

etc

not

get /contacts/123
get /contacts/456
etc

(on a slow GPRS connection, the setup time for a TLS connection can be
up to 15 seconds - seriously!. The first example might take 16 seconds
total. The second would take 15 x 5… you get the idea…)

This isn’t just contacts. it’d be useful for other ones, too, tho
mostly just for mobile apps :slight_smile:

Thats most of it for me I think…

Nic Wise
t. +44 7788 592 806 | @fastchicken | http://www.linkedin.com/in/nicwise
b. http://www.fastchicken.co.nz/

mobileAgent (for FreeAgent): get your accounts in your pocket.
http://goo.gl/IuBU
Trip Wallet: Keep track of your budget on the go: http://goo.gl/ePhKa
London Bike App: Find the nearest Boris Bike, and get riding! http://goo.gl/Icp2

Hi Nic

Thanks for the feedback, it has been noted.

** Multiple calls are expensive. So if I want to (for eg) get 10

different contacts, I’d love to be able to do this:

GET /contacts?ids=123,456,789,124,145

Please could you describe a use case for why you would want this?

Olly

Conveniently, I have my laptop at work today (thanks to the office
being so hot, my desktop machine slows riiiiiiight down. I wanna mac
for work.)

The main one I use is

http://domain/projects/id/tasks

so I call this for every project. if I could do:

/tasks?projectid=1,2,3,4,5

then it’d be one call.

timeslips would be useful too (same usecase), at the moment I’m using
/timeslips?view=date_date, which is ok… not perfect tho :slight_smile:

(and hey, this is a pie-in-the-sky list, it’s up to you - it’s not a
1:1 for a bug/task report list!! you can say no!)

I only want tasks for active projects, so while it’s possible (likely)
there is a /tasksOn Thu, Jul 28, 2011 at 10:44, Olly oheadey@gmail.com wrote:

Hi Nic
Thanks for the feedback, it has been noted.

** Multiple calls are expensive. So if I want to (for eg) get 10
different contacts, I’d love to be able to do this:

GET /contacts?ids=123,456,789,124,145

Please could you describe a use case for why you would want this?
Olly


You received this message because you are subscribed to the Google Groups
“FreeAgent API” group.
To view this discussion on the web visit
https://groups.google.com/d/msg/freeagent_api/-/dLHzJ0szP1UJ.
To post to this group, send email to freeagent_api@googlegroups.com.
To unsubscribe from this group, send email to
freeagent_api+unsubscribe@googlegroups.com.
For more options, visit this group at
http://groups.google.com/group/freeagent_api?hl=en.

Nic Wise
t. +44 7788 592 806 | @fastchicken | http://www.linkedin.com/in/nicwise
b. http://www.fastchicken.co.nz/

mobileAgent (for FreeAgent): get your accounts in your pocket.
http://goo.gl/IuBU
Trip Wallet: Keep track of your budget on the go: http://goo.gl/ePhKa
London Bike App: Find the nearest Boris Bike, and get riding! http://goo.gl/Icp2

For me, I like the idea of multiple calls…

"** Multiple calls are expensive. So if I want to (for eg) get 10
different contacts, I’d love to be able to do this:

GET /contacts?ids=123,456,789,124,145

But for me, the #1 is estimates - list and details. It allows me to
write some nice VBA which pulls Freeagent estimates into a nice Word
document with my terms, conditions, cover notes, etc etc.

Which I see is planned for V2. I love Freeagent :slight_smile:

There is some value in this type of request approach. At the moment
it’s basically all or 1 per section type. Pagination for example would
have to be done so very manually. What would be great in an API is
aggregated response for multiple types (so far I’ve never seen it in
any API to date).

Let me explain what I mean by this with an example using the FreeAgent
API.

Supposing you want to display a nice list of all your timeslips
(preferably paginated) with full project and client information “view
this complete timeslip”
First of all you need to know what clients you have, second what
projects you have per client.

Additionally you can’t actually do that using this API. It would be
done like so:

  1. You first need to request ALL the clients
  2. You then need to select ALL the projects.
  3. You need to loop over all the projects and basically link them to
    the client information.
  4. Say you want to add Tasks or Timeslips to this hierarchy it becomes
    massively more clunky and cumbersome.

What if you could do requests like: /projects/?
expand_client=1&start=1&limit=20
There’s pagination built in. Otherwise for every page view I would be
asking FreeAgent for all projects each page load - futhermore I would
have to select all the clients too to give each project some context.

I understand this is very complicated and not very well thought out
when it comes to efficiency.
how about as complicated as this (based on the current API response): /
timeslips/timeslip_id/?expand_project=1&expand_client=1&expand_task=1

In one request I could theoretically get all the info of a single
timeslip -to be honest that could be hugely elaborated upon, but it’s
a starting point.

This isn’t so much a request, more a suggestion to consider more
intricate requests. API’s are generally awful to work with because you
have to select so much info and filter it yourself, then make
additional requests just to show all the related info -API’s are
generally big bucket requests. They should be considered to be more
like SQL queries -not exactly like of course.

Food for thought, and sorry if some parts aren’t very clear -it’s more
like a mental dump lol

Regards,

Dave.On Jul 28, 11:44 am, Olly ohea...@gmail.com wrote:

Hi Nic

Thanks for the feedback, it has been noted.

** Multiple calls are expensive. So if I want to (for eg) get 10> different contacts, I’d love to be able to do this:

GET /contacts?ids=123,456,789,124,145

Please could you describe a use case for why you would want this?

Olly