Hi toolkit team, We had a short talk on wechat about what should we do next on Toolkit project. I think before we start we should have a discussion about the roadmap, because Toolkit is a project composed by different functions.
Below are the main functions I can think of, and features can be categorized into one of them: 1. Scaffold code generation: generate scaffold code from contract file. Currently we support Swagger 2.0 and OpenAPI v3. 2. Contract generation: reverse-engineering generate contract from code. Currently we support Swagger 2.0 and OpenAPI v3. 3. Contract style checking: check contract style. Currently we support OpenAPI v3. 4. Contract compatibility checking: check whether new contract is compatible with the old. Currently we support OpenAPI v3. 5. Server side code match checking: check whether server code, such as @Controller, @RequestMapping, etc, matches what are described in contract. Already implemented, but it's based on text diff not based on semantics, I think there are some limitations. 6. Client side code match checking: check whether client code matches what are described in contract. Maybe we can check the client written in Feign. Not implemented yet. 7. Service side auto/semi-auto testing: auto or semi-auto generate legal and illegal request payloads to test whether server response what are described in contract. Not implemented yet. 8. Mock server: to help client code do unit or integration testing, the key is the mock server should do every request validations that are described in the contract and responses' schema match the contract. Not implemented yet. 9. Documentation generation: generate various documentation format from contract, such as docx, pdf, html, markdown, etc. Not implemented yet. 10. Helpful tools based on above functions: such as cli, maven plugin, gradle plugin, eclipse plugin, intellij plugin. Partially implemented. Besides, should we still supporting Swagger 2.0? I think we should move on to OpenAPI 3.0. Any ideas are welcome. -- Daniel Qian Apache Committer(chanjarster) blog:https://chanjarster.github.io github:https://github.com/chanjarster segmentfault: https://segmentfault.com/u/chanjarster