{"push_id":1195819331,"size":2,"distinct_size":2,"ref":"refs/heads/pr.api-routes","head":"6aa5e9388b8a795a25b1fb506b196d91b4d11ac4","before":"5c8aff42b24638ff573c20660891040f1e00f05b","commits":[{"sha":"8df2ab08730683264c705b617842d2956c77806d","author":{"name":"Marc Daya","email":"914bb1aa8f50cbee5072379fc4374eb10cf80dcc@sinistral.net"},"message":"Use a URI-friendly string for resource IDs.\n\nProjects, methods and samples lend themselves to being represented as\nresources in a RESTful API.  But, although the names of our resources\nare unique, they are not used as the primary identifier.  Rather we use\nhashids, which leaves open the possiblity of renaming a resource without\nbreaking clients that may have cached the name as a resource identifier;\ncf. http://hashids.org.\n\nThus you can do something like:\n\n   curl http://sagittariidae/projects/xY4fj-inconel/samples/tJ3rP-sample-123\n\nrather than:\n\n   curl \"http://sagittariidae/sample?project-id=123&sample-id=456\"\n\nwith the former providing resource labels in addition to the IDs and an\nexplicitly hierarchical representation.","distinct":true,"url":"https://api.github.com/repos/sinistral/csm-adapt.sagittariidae/commits/8df2ab08730683264c705b617842d2956c77806d"},{"sha":"6aa5e9388b8a795a25b1fb506b196d91b4d11ac4","author":{"name":"Marc Daya","email":"914bb1aa8f50cbee5072379fc4374eb10cf80dcc@sinistral.net"},"message":"Wire in a route to retrieve samples for a project.\n\nIn this case, the \"Not found\" situation has been modified to use a new\napp-specific exception class.  This has two advantages:\n\n* The outer layers of the app do not have dependencies on the\n  implementation details of the inner layers.  In this case the\n  exception classes of the model persistance framework are not leaked\n  into the view.\n* By defining our own exceptions we can reduce the boilerplate message\n  construction and annotate them with the HTTP codes that should be sent\n  back to the client.","distinct":true,"url":"https://api.github.com/repos/sinistral/csm-adapt.sagittariidae/commits/6aa5e9388b8a795a25b1fb506b196d91b4d11ac4"}]}
{"actor":{"display_login":"sinistral"}}