SwiftMoyaCodeGenerator
SwiftMoyaCodeGenerator copied to clipboard
Generate whole API package instead of one request
The idea is to use RequestGroup and name the whole exported API after it's name (currently static "API" name is used). Then generate the whole enum with the enclosed Requests.
So something like this:
Twitter (RequestGroup)
- User (
Request, first enum case) - Tweets (
Request, second enum case)
The technique you can use here is:
processRequest(request) {
// generate your code or whatever you need here
}
processGroup(group) {
// generate your code or whatever you need here
// process children
var requests = group.getChildRequests();
var groups = group.getChildGroups();
for (var i = 0; i < requests.length; i++) {
processRequest(requests[i]);
}
for (var i = 0; i < groups.length; i++) {
processGroup(groups[i]);
}
}
process(context) {
var requests = context.getRootRequests();
var groups = context.getRootGroups();
for (var i = 0; i < requests.length; i++) {
processRequest(requests[i]);
}
for (var i = 0; i < groups.length; i++) {
processGroup(groups[i]);
}
}
hope it helps!
Also @lkuczborski, we will be adding at some point later (in a few weeks/months) a way to add options to code generators, so we could have a checkbox "Generate code for the whole document"