{"action":"created","issue":{"url":"https://api.github.com/repos/swagger-api/swagger-codegen/issues/3749","repository_url":"https://api.github.com/repos/swagger-api/swagger-codegen","labels_url":"https://api.github.com/repos/swagger-api/swagger-codegen/issues/3749/labels{/name}","comments_url":"https://api.github.com/repos/swagger-api/swagger-codegen/issues/3749/comments","events_url":"https://api.github.com/repos/swagger-api/swagger-codegen/issues/3749/events","html_url":"https://github.com/swagger-api/swagger-codegen/issues/3749","id":175698740,"number":3749,"title":"[swagger-codegen] Generating single client for multiple API definitions","user":{"login":"chamindias","id":8359365,"avatar_url":"https://avatars1.githubusercontent.com/u/8359365?v=4","gravatar_id":"","url":"https://api.github.com/users/chamindias","html_url":"https://github.com/chamindias","followers_url":"https://api.github.com/users/chamindias/followers","following_url":"https://api.github.com/users/chamindias/following{/other_user}","gists_url":"https://api.github.com/users/chamindias/gists{/gist_id}","starred_url":"https://api.github.com/users/chamindias/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chamindias/subscriptions","organizations_url":"https://api.github.com/users/chamindias/orgs","repos_url":"https://api.github.com/users/chamindias/repos","events_url":"https://api.github.com/users/chamindias/events{/privacy}","received_events_url":"https://api.github.com/users/chamindias/received_events","type":"User","site_admin":false},"labels":[{"id":410531038,"url":"https://api.github.com/repos/swagger-api/swagger-codegen/labels/General:%20Suggestion","name":"General: Suggestion","color":"66ccff","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/swagger-api/swagger-codegen/milestones/5","html_url":"https://github.com/swagger-api/swagger-codegen/milestone/5","labels_url":"https://api.github.com/repos/swagger-api/swagger-codegen/milestones/5/labels","id":913962,"number":5,"title":"Future","description":"","creator":{"login":"fehguy","id":249413,"avatar_url":"https://avatars3.githubusercontent.com/u/249413?v=4","gravatar_id":"","url":"https://api.github.com/users/fehguy","html_url":"https://github.com/fehguy","followers_url":"https://api.github.com/users/fehguy/followers","following_url":"https://api.github.com/users/fehguy/following{/other_user}","gists_url":"https://api.github.com/users/fehguy/gists{/gist_id}","starred_url":"https://api.github.com/users/fehguy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fehguy/subscriptions","organizations_url":"https://api.github.com/users/fehguy/orgs","repos_url":"https://api.github.com/users/fehguy/repos","events_url":"https://api.github.com/users/fehguy/events{/privacy}","received_events_url":"https://api.github.com/users/fehguy/received_events","type":"User","site_admin":false},"open_issues":509,"closed_issues":133,"state":"open","created_at":"2014-12-24T05:48:44Z","updated_at":"2017-09-25T14:34:23Z","due_on":null,"closed_at":null},"comments":3,"created_at":"2016-09-08T08:51:23Z","updated_at":"2017-09-27T17:02:09Z","closed_at":null,"author_association":"NONE","body":"##### Description\n\nWhen we use swagger codegen to generate client side SDKs, we are able to generate one SDK per API definition (for a given language). Please refer the example below.\n\nEg : If we have 2 APIs, say \"GeoAPI\" and \"TimeAPI\", we need to generate 2 SDKs (i.e - 2 separate jar files) with the existing implementation, since the library supports only one definition at a time.\n\nLimitation here is, if someone needs to consume both \"GeoAPI\" and \"TimeAPI\", he needs to write 2 separate clients.\n\nIf a user can get a single jar file and include it in his project, he can use a single client to consume both \"GeoAPI\" and \"TimeAPI\". For that, we need to have root pom.xml file which builds the individual SDKs. (This root pom.xml should be created automatically by the library at the time of SDK generation.) In other words we need to generate one client from multiple swagger definitions.\n\nPlease let us know the possibility of this with the current implementation of swagger codegen. \n##### Swagger-codegen version\n\n2.2.0\n"},"comment":{"url":"https://api.github.com/repos/swagger-api/swagger-codegen/issues/comments/332588345","html_url":"https://github.com/swagger-api/swagger-codegen/issues/3749#issuecomment-332588345","issue_url":"https://api.github.com/repos/swagger-api/swagger-codegen/issues/3749","id":332588345,"user":{"login":"kgilmer","id":49683,"avatar_url":"https://avatars2.githubusercontent.com/u/49683?v=4","gravatar_id":"","url":"https://api.github.com/users/kgilmer","html_url":"https://github.com/kgilmer","followers_url":"https://api.github.com/users/kgilmer/followers","following_url":"https://api.github.com/users/kgilmer/following{/other_user}","gists_url":"https://api.github.com/users/kgilmer/gists{/gist_id}","starred_url":"https://api.github.com/users/kgilmer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kgilmer/subscriptions","organizations_url":"https://api.github.com/users/kgilmer/orgs","repos_url":"https://api.github.com/users/kgilmer/repos","events_url":"https://api.github.com/users/kgilmer/events{/privacy}","received_events_url":"https://api.github.com/users/kgilmer/received_events","type":"User","site_admin":false},"created_at":"2017-09-27T17:02:09Z","updated_at":"2017-09-27T17:02:09Z","author_association":"NONE","body":"+1\r\n\r\nYes it's obvious that client-per-API by default is the best approach, but in support of @chamindias, there are also use-cases in which you would want to provide one client for a set of APIs.  In addition to @fonix232 's comment about versioning, if you happen to have very granular APIs, it quickly becomes tedious to manage all these client JARs.  Additionally, in Android, there is additional build-time complexity in managing conflicts in the generated code that is common across client libraries."}}
{"actor":{"display_login":"kgilmer"}}