{"action":"reopened","issue":{"url":"https://api.github.com/repos/stoicflame/enunciate/issues/290","repository_url":"https://api.github.com/repos/stoicflame/enunciate","labels_url":"https://api.github.com/repos/stoicflame/enunciate/issues/290/labels{/name}","comments_url":"https://api.github.com/repos/stoicflame/enunciate/issues/290/comments","events_url":"https://api.github.com/repos/stoicflame/enunciate/issues/290/events","html_url":"https://github.com/stoicflame/enunciate/issues/290","id":130244842,"number":290,"title":"Handling encapsulated query parameters","user":{"login":"sg-ad","id":10407766,"avatar_url":"https://avatars.githubusercontent.com/u/10407766?v=3","gravatar_id":"","url":"https://api.github.com/users/sg-ad","html_url":"https://github.com/sg-ad","followers_url":"https://api.github.com/users/sg-ad/followers","following_url":"https://api.github.com/users/sg-ad/following{/other_user}","gists_url":"https://api.github.com/users/sg-ad/gists{/gist_id}","starred_url":"https://api.github.com/users/sg-ad/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sg-ad/subscriptions","organizations_url":"https://api.github.com/users/sg-ad/orgs","repos_url":"https://api.github.com/users/sg-ad/repos","events_url":"https://api.github.com/users/sg-ad/events{/privacy}","received_events_url":"https://api.github.com/users/sg-ad/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/stoicflame/enunciate/labels/enhancement","name":"enhancement","color":"207de5"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/stoicflame/enunciate/milestones/10","html_url":"https://github.com/stoicflame/enunciate/milestones/2.3.0","labels_url":"https://api.github.com/repos/stoicflame/enunciate/milestones/10/labels","id":1507423,"number":10,"title":"2.3.0","description":"","creator":{"login":"stoicflame","id":145838,"avatar_url":"https://avatars.githubusercontent.com/u/145838?v=3","gravatar_id":"","url":"https://api.github.com/users/stoicflame","html_url":"https://github.com/stoicflame","followers_url":"https://api.github.com/users/stoicflame/followers","following_url":"https://api.github.com/users/stoicflame/following{/other_user}","gists_url":"https://api.github.com/users/stoicflame/gists{/gist_id}","starred_url":"https://api.github.com/users/stoicflame/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stoicflame/subscriptions","organizations_url":"https://api.github.com/users/stoicflame/orgs","repos_url":"https://api.github.com/users/stoicflame/repos","events_url":"https://api.github.com/users/stoicflame/events{/privacy}","received_events_url":"https://api.github.com/users/stoicflame/received_events","type":"User","site_admin":false},"open_issues":33,"closed_issues":44,"state":"open","created_at":"2016-01-14T18:04:11Z","updated_at":"2016-03-11T18:04:52Z","due_on":null,"closed_at":null},"comments":7,"created_at":"2016-02-01T03:29:43Z","updated_at":"2016-03-11T18:04:52Z","closed_at":null,"body":"With Spring it's possible to declare the following API:\r\n```java\r\n@GET\r\nList<Order> readOrders(@QueryParam(\"\") OrderFilter orderFilter);\r\n```\r\n\r\nwhere `OrderFilter` could be something like:\r\n\r\n```java\r\n@Data\r\npublic class OrderFilter implements Serializable {\r\n\tprivate static final long serialVersionUID = 4126330247659162216L;\r\n\tprivate String accountNumber;\r\n\tprivate String customerId;\r\n\tprivate String status;\r\n}\r\n```\r\nSpring looks at the type of the `@QueryParam`, sees `OrderFilter` and automatically considers all of its properties as implicit query parameter declarations.  Therefore, for a request like `http://localhost/api/readOrders?accountNumber=1&customerId=2&status=COMPLETE`, Spring will correctly create and populate an `OrderFilter`.\r\n\r\nIs there a way to tell Enunciate that it should resolve the properties of `OrderFilter` as valid query parameters?"}}