{"action":"closed","issue":{"url":"https://api.github.com/repos/semiotproject/semiot-platform/issues/94","labels_url":"https://api.github.com/repos/semiotproject/semiot-platform/issues/94/labels{/name}","comments_url":"https://api.github.com/repos/semiotproject/semiot-platform/issues/94/comments","events_url":"https://api.github.com/repos/semiotproject/semiot-platform/issues/94/events","html_url":"https://github.com/semiotproject/semiot-platform/issues/94","id":115917587,"number":94,"title":"Revisit the design of system URIs","user":{"login":"KMax","id":189642,"avatar_url":"https://avatars.githubusercontent.com/u/189642?v=3","gravatar_id":"","url":"https://api.github.com/users/KMax","html_url":"https://github.com/KMax","followers_url":"https://api.github.com/users/KMax/followers","following_url":"https://api.github.com/users/KMax/following{/other_user}","gists_url":"https://api.github.com/users/KMax/gists{/gist_id}","starred_url":"https://api.github.com/users/KMax/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KMax/subscriptions","organizations_url":"https://api.github.com/users/KMax/orgs","repos_url":"https://api.github.com/users/KMax/repos","events_url":"https://api.github.com/users/KMax/events{/privacy}","received_events_url":"https://api.github.com/users/KMax/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/semiotproject/semiot-platform/labels/device-proxy-service","name":"device-proxy-service","color":"eb6420"}],"state":"closed","locked":false,"assignee":{"login":"Amberdr0p","id":11407244,"avatar_url":"https://avatars.githubusercontent.com/u/11407244?v=3","gravatar_id":"","url":"https://api.github.com/users/Amberdr0p","html_url":"https://github.com/Amberdr0p","followers_url":"https://api.github.com/users/Amberdr0p/followers","following_url":"https://api.github.com/users/Amberdr0p/following{/other_user}","gists_url":"https://api.github.com/users/Amberdr0p/gists{/gist_id}","starred_url":"https://api.github.com/users/Amberdr0p/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Amberdr0p/subscriptions","organizations_url":"https://api.github.com/users/Amberdr0p/orgs","repos_url":"https://api.github.com/users/Amberdr0p/repos","events_url":"https://api.github.com/users/Amberdr0p/events{/privacy}","received_events_url":"https://api.github.com/users/Amberdr0p/received_events","type":"User","site_admin":false},"milestone":null,"comments":1,"created_at":"2015-11-09T16:51:35Z","updated_at":"2015-11-20T12:22:30Z","closed_at":"2015-11-20T12:22:30Z","body":"Currently we don't use dereferenceable URIs for the systems (aka devices), because we don't have an API which could provide such a capability. But since we're working on such an API (#93) when we need to think about it.\r\n\r\nAn obvious option is `http://[domain]/systems/[System ID]`, but how to generate the `[System ID]`?\r\n\r\nI think it should be generated by a hash function which will work like this:\r\n* generate a driver specific id `[driver id]+[device id]` where `[device id]` generated by the driver itself and should uniquely identify the device, e.g. MAC address of the device could be used. So if we remove the device and then get it back it should have the same `[device id]`.\r\n* compute a hash of the driver specific id\r\n* and the result of this hash function will be `[System ID]`.\r\n\r\nThere is [a good overview and comparison](http://programmers.stackexchange.com/a/145633) of existing hash function."}}