{"action":"closed","issue":{"url":"https://api.github.com/repos/OAI/OpenAPI-Specification/issues/208","repository_url":"https://api.github.com/repos/OAI/OpenAPI-Specification","labels_url":"https://api.github.com/repos/OAI/OpenAPI-Specification/issues/208/labels{/name}","comments_url":"https://api.github.com/repos/OAI/OpenAPI-Specification/issues/208/comments","events_url":"https://api.github.com/repos/OAI/OpenAPI-Specification/issues/208/events","html_url":"https://github.com/OAI/OpenAPI-Specification/issues/208","id":49164059,"number":208,"title":"Swagger.next: Let's not use hashes anymore ","user":{"login":"mohsen1","id":543633,"avatar_url":"https://avatars.githubusercontent.com/u/543633?v=3","gravatar_id":"","url":"https://api.github.com/users/mohsen1","html_url":"https://github.com/mohsen1","followers_url":"https://api.github.com/users/mohsen1/followers","following_url":"https://api.github.com/users/mohsen1/following{/other_user}","gists_url":"https://api.github.com/users/mohsen1/gists{/gist_id}","starred_url":"https://api.github.com/users/mohsen1/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mohsen1/subscriptions","organizations_url":"https://api.github.com/users/mohsen1/orgs","repos_url":"https://api.github.com/users/mohsen1/repos","events_url":"https://api.github.com/users/mohsen1/events{/privacy}","received_events_url":"https://api.github.com/users/mohsen1/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":9,"created_at":"2014-11-18T00:19:42Z","updated_at":"2016-04-14T16:17:44Z","closed_at":"2016-04-14T16:17:44Z","body":"Putting `paths` and `operations` in a hash made all sort of problems. The biggest problem is keeping order status of paths and operations. Tags can help organize the paths and operations but that's not enough. Most of people expect Swagger document keep it's order status when they are authoring one. \r\nOther problem with using hashes is that we are using keys as a data storage. This makes it impossible to have other keys in `paths` or `operation` because every key is a path or operation. \r\n\r\nLets use arrays for the next version and make life easier for everyone. It will not make specs uglier. Here is an example:\r\n\r\n```yaml\r\n# Example YAML for the bare minimum of required elements\r\n# See petstore.yaml for a more comprehensive example\r\nswagger: '3.0'\r\ninfo:\r\n  version: \"1.0.0\"\r\n  title: petstore\r\npaths:\r\n  - \r\n    path: /pets # maybe path can have multiple endpoints like `path: [ \"/pets\", \"/animals\"]\r\n    consumes:  # path level consumes \r\n      - \"text/html\"\r\n    operations:\r\n      - method: get # maybe we can define a batch of operations in one operation i.e. `methods: [ \"post\", \"head\"]\r\n        responses:\r\n          - \r\n            code: \"200\" # ability to have responses defined by code OR other means (solving response overloading issue)\r\n            description:  Describe the 200 response in more detail\r\n\r\n```"}}