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

Reply via email to