{"action":"created","issue":{"url":"https://api.github.com/repos/cloudfoundry/dropsonde-protocol/issues/1","labels_url":"https://api.github.com/repos/cloudfoundry/dropsonde-protocol/issues/1/labels{/name}","comments_url":"https://api.github.com/repos/cloudfoundry/dropsonde-protocol/issues/1/comments","events_url":"https://api.github.com/repos/cloudfoundry/dropsonde-protocol/issues/1/events","html_url":"https://github.com/cloudfoundry/dropsonde-protocol/issues/1","id":67278134,"number":1,"title":"Using an enum for HTTP method is problematic","user":{"login":"mheath","id":9087,"avatar_url":"https://avatars.githubusercontent.com/u/9087?v=3","gravatar_id":"","url":"https://api.github.com/users/mheath","html_url":"https://github.com/mheath","followers_url":"https://api.github.com/users/mheath/followers","following_url":"https://api.github.com/users/mheath/following{/other_user}","gists_url":"https://api.github.com/users/mheath/gists{/gist_id}","starred_url":"https://api.github.com/users/mheath/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mheath/subscriptions","organizations_url":"https://api.github.com/users/mheath/orgs","repos_url":"https://api.github.com/users/mheath/repos","events_url":"https://api.github.com/users/mheath/events{/privacy}","received_events_url":"https://api.github.com/users/mheath/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-04-09T04:25:43Z","updated_at":"2015-04-09T04:25:47Z","closed_at":null,"body":"I had an email conversation with @ajackson about this and wanted to create a GitHub issue to open up the discussion further.\r\n\r\nCurrently, the HTTP events use an enum to hold the HTTP method, https://github.com/cloudfoundry/dropsonde-protocol/blob/master/events/http.proto#L12-L18.\r\n\r\nThis is problematic because HTTP methods are not limited to a fixed set. An HTTP method can be an arbitrary case sensitive ASCII string. (See 'extension-method' in the HTTP/1.1 RFC http://www.w3.org/Protocols/rfc2616/rfc2616-sec5.html#sec5.1.1.)\r\n\r\nExamples of standard extension-methods include the WebDAV protocol which adds 7 HTTP methods and RFC 5789 adds the PATCH method.\r\n\r\nThe challenge now is that the method fields on the HTTP events is marked as required so it can't be removed and maintain backwards compatibility.\r\n\r\nSo, how do we create HTTP Dropsonde events for non-standard HTTP methods?"},"comment":{"url":"https://api.github.com/repos/cloudfoundry/dropsonde-protocol/issues/comments/91112191","html_url":"https://github.com/cloudfoundry/dropsonde-protocol/issues/1#issuecomment-91112191","issue_url":"https://api.github.com/repos/cloudfoundry/dropsonde-protocol/issues/1","id":91112191,"user":{"login":"cf-gitbot","id":5589368,"avatar_url":"https://avatars.githubusercontent.com/u/5589368?v=3","gravatar_id":"","url":"https://api.github.com/users/cf-gitbot","html_url":"https://github.com/cf-gitbot","followers_url":"https://api.github.com/users/cf-gitbot/followers","following_url":"https://api.github.com/users/cf-gitbot/following{/other_user}","gists_url":"https://api.github.com/users/cf-gitbot/gists{/gist_id}","starred_url":"https://api.github.com/users/cf-gitbot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cf-gitbot/subscriptions","organizations_url":"https://api.github.com/users/cf-gitbot/orgs","repos_url":"https://api.github.com/users/cf-gitbot/repos","events_url":"https://api.github.com/users/cf-gitbot/events{/privacy}","received_events_url":"https://api.github.com/users/cf-gitbot/received_events","type":"User","site_admin":false},"created_at":"2015-04-09T04:25:47Z","updated_at":"2015-04-09T04:25:47Z","body":"We have created an issue in Pivotal Tracker to manage this. You can view the current status of your issue at: https://www.pivotaltracker.com/story/show/92100860."}}