{"action":"created","issue":{"url":"https://api.github.com/repos/OpenFeign/feign/issues/644","repository_url":"https://api.github.com/repos/OpenFeign/feign","labels_url":"https://api.github.com/repos/OpenFeign/feign/issues/644/labels{/name}","comments_url":"https://api.github.com/repos/OpenFeign/feign/issues/644/comments","events_url":"https://api.github.com/repos/OpenFeign/feign/issues/644/events","html_url":"https://github.com/OpenFeign/feign/issues/644","id":301058103,"node_id":"MDU6SXNzdWUzMDEwNTgxMDM=","number":644,"title":"idea: retrofeign","user":{"login":"adriancole","id":64215,"node_id":"MDQ6VXNlcjY0MjE1","avatar_url":"https://avatars2.githubusercontent.com/u/64215?v=4","gravatar_id":"","url":"https://api.github.com/users/adriancole","html_url":"https://github.com/adriancole","followers_url":"https://api.github.com/users/adriancole/followers","following_url":"https://api.github.com/users/adriancole/following{/other_user}","gists_url":"https://api.github.com/users/adriancole/gists{/gist_id}","starred_url":"https://api.github.com/users/adriancole/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adriancole/subscriptions","organizations_url":"https://api.github.com/users/adriancole/orgs","repos_url":"https://api.github.com/users/adriancole/repos","events_url":"https://api.github.com/users/adriancole/events{/privacy}","received_events_url":"https://api.github.com/users/adriancole/received_events","type":"User","site_admin":false},"labels":[{"id":45229631,"node_id":"MDU6TGFiZWw0NTIyOTYzMQ==","url":"https://api.github.com/repos/OpenFeign/feign/labels/enhancement","name":"enhancement","color":"84b6eb","default":true}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":7,"created_at":"2018-02-28T15:04:33Z","updated_at":"2018-07-26T23:36:57Z","closed_at":null,"author_association":"MEMBER","body":"\"retrofeign\" retrofits ... retrofit's async layer onto feign\r\n\r\nThis project has a lot of users, and needs some help I think. What if we tried to leverage code that has a nice design to extend the life a bit.\r\n\r\nMy theory is that we could make \"retrofeign\" which would allow the same contract parsing that feign existing users have, but be able to employ retrofit async layering (ex rxjava)\r\n\r\nEx. it would look like..\r\n\r\n```java\r\nFeign feign = RetroFeign.builder()\r\n     ... // normal things\r\n    .callAdapterFactory(RxJava2CallAdapterFactory.create())\r\n    .target(MyService.class, \"https://example.com\");\r\n```\r\n\r\n```java\r\ninterface MyService {\r\n  @RequestLine(\"GET /user\")\r\n  Observable<User> getUser();\r\n}\r\n```\r\n\r\nThe call adapter factory won't always be portable as it relies on Retrofit. However the code there is relatively straightforward, and some of the call adapters don't actually use the retrofit instance at all. At any case I think we could reuse the Call adapters with less effort than starting something from scratch.\r\n\r\nhttps://github.com/square/retrofit/blob/master/retrofit/src/main/java/retrofit2/CallAdapter.java\r\n\r\nIt might not work, but seems like a good way to provide sustainable options to people. For example, when using okhttp client we could use this to reasonably easily create guava rxjava or other types of async things.\r\n\r\nthoughts?\r\n\r\ncc @jakewharton @swankjesse"},"comment":{"url":"https://api.github.com/repos/OpenFeign/feign/issues/comments/408267051","html_url":"https://github.com/OpenFeign/feign/issues/644#issuecomment-408267051","issue_url":"https://api.github.com/repos/OpenFeign/feign/issues/644","id":408267051,"node_id":"MDEyOklzc3VlQ29tbWVudDQwODI2NzA1MQ==","user":{"login":"kdavisk6","id":6013627,"node_id":"MDQ6VXNlcjYwMTM2Mjc=","avatar_url":"https://avatars1.githubusercontent.com/u/6013627?v=4","gravatar_id":"","url":"https://api.github.com/users/kdavisk6","html_url":"https://github.com/kdavisk6","followers_url":"https://api.github.com/users/kdavisk6/followers","following_url":"https://api.github.com/users/kdavisk6/following{/other_user}","gists_url":"https://api.github.com/users/kdavisk6/gists{/gist_id}","starred_url":"https://api.github.com/users/kdavisk6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kdavisk6/subscriptions","organizations_url":"https://api.github.com/users/kdavisk6/orgs","repos_url":"https://api.github.com/users/kdavisk6/repos","events_url":"https://api.github.com/users/kdavisk6/events{/privacy}","received_events_url":"https://api.github.com/users/kdavisk6/received_events","type":"User","site_admin":false},"created_at":"2018-07-26T23:36:57Z","updated_at":"2018-07-26T23:36:57Z","author_association":"COLLABORATOR","body":"I was going to suggest the same thing. "}}
{"actor":{"display_login":"kdavisk6"}}