This looks like a really nicely designed API when compared to many others, good job team!
However, it doesn't appear anywhere near "fully" RESTful as described. The docs even link to http://en.wikipedia.org/wiki/Representational_state_transfer - but I can't see any HATEOAS style support in there (only looking at the docs, I haven't started actually using the API yet).
I realise this is a topic that gets brought up again and again, I have done this myself several times, but I don't think we're going to see a paradigm shift in ease of use of APIs, or in how consumers of APIs work, until lots of API providers are supporting HATEOAS.
Sure, it's not very well defined yet, but it will become better defined with each provider that implements it and builds on what others are doing.
Additionally, Tugboat[1] will be moving from my github account over to the 'boats' org and using the new API. If you're interested in helping with an existing project (such as Tugboat or Barge), or a new one, please let me know!
Great to see an API improvement for DO! But at the same time, I wish they will provide a few more base features (at a price of course) like an equivalent of S3, EBS and load balancing.
With at least those services in place, I will most likely start moving a few apps on DO (yes I know I can use S3 but you get the idea).
Tbh, given DO's price point, I think EBS would be more support headache than its worth.
Cloudfront & S3 [or equiv] you can already get elsewhere and it doesn't really impact the setup.
DO really, really badly needs highly available, multi-datacenter load balancers. Without highly available load balancing [even in-DC would be good enough] where you can failover the IPs from Load Balancer A to B...
I just don't see it moving outside of the hobby/staging/etc space. Projects that you can afford downtime on.
If you can survive a few minutes downtime, then you can use Amazon Route53 failover DNS (with health checks) combined with low TTLs to provide failover between DigitalOcean data centres for ~$0.50/month - this is how we structure our less critical APIs that are hosted there.
I agree though - it'd be great if DO provided a proper load balancing solution.
Mhm, I can do DNS load balancing now with any provider.
DO's main competition atm with price parity is Linode which provides single-dc HA load balancers. If I want to pay more I can use AWS, GCP, Azure, etc that also offer them. ;)
I'd really like to avoid DNS load balancing to failover within a datacenter at a minimum [in the event of a load balancer failure], ideally I'd like to avoid it completely.
I have a handful of sites that are more than just hobby sites, but the number of 9's in the SLA won't affect the bottom line at all. 5 DO droplets = $25 / month makes significantly more sense in this case than paying over $150 for the equivalent at AWS.
And I think this use is a large enough market for DO to make a fortune.
Sure, but I'm willing to bet that if DO offered failover, you'd be willing to pay them more to take advantage of it. Perhaps not a lot more, but it's money they're leaving on the table.
I do think that offering IP failover would be a much better way for DO to pick up extra revenue in the future than offering a competitor to S3 or EBS or Cloudfront or whatever.
I've never worked on that sort of thing so to me downtime == $$ lost. I need a load balancer for anything more than a hobby project as a result. The one thing I can't find anywhere is truly multi-DC load balancers as a service from a hosting provider I'd use.
I've had the same thought before, but I worry more and more about vendor lock in. I like DO because theyre just giving me a server - I can implement a proxy or a database or whatever on them the same as I would on any VPS. For me to use a service like s3 from DO it would have to have basically the same API as s3 or some other service I could switch to if necessary.
I agree as far as lock-in goes, but there are some fairly simple "cloudy" things that don't really require lockin. One thing I miss at DO is just being able to set up network-attached storage, e.g. an 100GB drive that I can NFS-mount on a droplet. Instead the only storage available is the instance storage.
It originally had PATCH in the design. I think it was a limitation of our tooling that made us reconsider. And that PUT was slightly more familiar for novice users. At the end of the day ... it doesn't matter. Either way is a huge improvement from all GET.
Totally agreed, but for us that also write and consume RESTful services, PATCH is the best way to prevent race conditions when you have multiple things updating at the same time. That and as a purist, I like the idea of updating the minimal amount vs the entire object all at once.
Regardless, this is a HUGE improvement, so nice work! Oh and please keep the interesting projects coming on github. I'm a fan of the docker + consul integration you've been working on.
Good! Looks good and was a MUCH needed update. Their last version was a tad....unusable at times and lacked some much needed features. Glad to see an upgrade.
However, it doesn't appear anywhere near "fully" RESTful as described. The docs even link to http://en.wikipedia.org/wiki/Representational_state_transfer - but I can't see any HATEOAS style support in there (only looking at the docs, I haven't started actually using the API yet).
I realise this is a topic that gets brought up again and again, I have done this myself several times, but I don't think we're going to see a paradigm shift in ease of use of APIs, or in how consumers of APIs work, until lots of API providers are supporting HATEOAS.
Sure, it's not very well defined yet, but it will become better defined with each provider that implements it and builds on what others are doing.