Mike Amundsen

Mike Amundsen


221 comments posted · 1 followers · following 1

111 weeks ago @ mca blog ... - mca blog [an online tu... · 0 replies · +3 points

in general, i am not a fan of RPC-style since it lacks state transitions (hypermedia controls) in the resposnes. that means lots of understanding of the implementaiton has to be "baked" into the client app directly (e.g. all the args, returns, URLs, methods, etc.) and changing any of them results in a brokekn client.

but, RPC is still a very popular style for teams that write/release both the client and server at the same time since breaking changes are "cheaper" that way.

196 weeks ago @ mca blog ... - mca blog [Model Action... · 0 replies · +1 points

the actions i advocate are not implemented as _resouces_. instead they are exposed as affordances: links and forms. and, while it is not clear in this post, i do not advocate for basing external resources on entities. i usually expose resources as state. and, yes, you can "verb" any state<g>.

197 weeks ago @ mca blog ... - mca blog [Model Action... · 0 replies · +1 points

yep - my go-to pattern right now is to map out the actions and their arguments along with return values. i do this using ALPS right now.

and, when implementing the ALPS description over HTTP/HTML the actions are FORMS. same when using HTTP/Siren and HTTP/Cj (since they already have FORMS built into the media type design. when using HAL, i add the HAL-FORMS spec to get the same features w/o altering the format of HAL.

when using XML in the past, i've used XFORMS. i could also use HAL-FORMS for plain JSON responses, i guess. but i haven't done that yet.

198 weeks ago @ mca blog ... - mca blog [Model Action... · 0 replies · +1 points

i've got no problems w/ companies adding UX experience to API design teams.

198 weeks ago @ mca blog ... - mca blog [Model Action... · 0 replies · +1 points


that epigram is also meant to remind folks of the independence of all those external elements like resources and message models, too.

it doesn't help that most all the tooling we have today leads devs into using resources or data/objects as the primary design element.

it's a challenge!

198 weeks ago @ mca blog ... - mca blog [Model Action... · 2 replies · +1 points

jobs-to-be-done are usually more than a single act.

ApproveNewCustomer, ValidateUser, ReviewJobCandidates, AcceptNewOrders, etc.

resources on the web are the states, not the actions. actions help us move between states, sometimes through multiple steps.

HTTP methods are not the jobs-to-be-done. and HTTP is not going to be the only protocol for doing work on the WWW or the Internet.

and, even more valuable, the jobs-to-be-done are the same whether you are using RPC, REST, Event-Driven, Query-Driven, or just plain file-transfer style implementations. focusing on the actions means i can make implementation decisions separately -- and repeatedly -- without losing fidelity for the jobs-to-be-done.

287 weeks ago @ mca blog ... - mca blog [Uber Hyperme... · 1 reply · +4 points

yes, the universew is small ATM and i'm always looking to grow it.

check out https://github.com/uber-hypermedia (it's small right now, but needs some love)

also, ping co-owner https://github.com/inadarei as he is working on some production-level UBER for his startup.

340 weeks ago @ mca blog ... - mca blog [the next lev... · 0 replies · +1 points

yep - lots of vendors and technologies out there for this space. the last article in the series will have a longer list and i'll make sure that both of the ones you mention are included.


345 weeks ago @ mca blog ... - mca blog [Learning Cli... · 0 replies · +3 points

cool. i'll be looking for reviewers in June/July timeframe and would be happy to include you in the list.


353 weeks ago @ mca blog ... - mca blog [Learning Cli... · 1 reply · +3 points


i'll be looking for some added "eyes" and "ears" on the code as the book progresses so -- yes! best way to get invovled is to follow the @LCHBook account and watch the related github repo.

all will be revealed in due time ;)