Acknowledgments
tip
Here, special thanks go to the author and all contributors of the open-source framework JapiDoc (opens new window)Certain parts of this framework's code have been inspired by or directly reused from JApiDoc (opens new window),and we make this explicit declaration here.
Background Thanks to JapiDoc for pioneering the generation of API documentation through annotations. So why both Zhuge Liang and Zhou Yu when one suffices? JAPIDOC was an API documentation generation framework I came across years ago, and its excellent design philosophy left a deep impression on me. Unfortunately, the project has ceased maintenance. "An emperor's endeavor cut short before its time," as a trusted minister of the Han Dynasty, having enjoyed its bounty for generations, how could I resign myself to the fall of Shu Han? First, I embarked on establishing the Easy-Es foundation (Kun), and now I carry on the late emperor's legacy, continuing the endeavor for the benefit of the people. In the early stages of the venture, I discovered that the late emperor left behind numerous issues, seriously affecting the user experience, including but not limited to the following aspects:
- When PageHelper pagination plugin is used in the project, pagination-related interfaces cannot generate API documentation properly.
- When easy-es pagination is used in the project, pagination-related interfaces cannot generate API documentation properly.
- Inability to support scenarios where return models are packed into jars.
- Outdated version of fastjson with CVE vulnerabilities.
- Low version of javaparser with CVE vulnerabilities.
- Not entirely non-intrusive, still requires some code writing to generate documentation.
- Feature deficiency, unable to provide online interface debugging like Swagger.
- Limited JDK version support, highest supported being JDK 8.
- Issues with Freemarker generating API documentation, missing parameters causing the entire generation process to fail.
- Type conversion exceptions when using wildcard type parameters in interface parameters, leading to generation failure.
- Problems reading interface types without @RestController/@Controller annotations.
- Messy document structure, inability to quickly locate the homepage and Markdown documents when there are many interfaces.
- Lack of support for watermarking, classification levels, cross-origin, and other high-frequency features.
- Simple and less elegant UI and interaction design.
- Source code not uploaded to the Maven Central Repository, making it difficult to view source code and obtain editor-integrated parameter hints.
- Numerous missing comments in the source code.
- Not user-friendly enough for novices.
- Insufficiently comprehensive and easily understandable official documentation.
- ...
The aforementioned issues are indeed critical, rendering the tool unusable in most projects. And the greatest problem of all is that the open-source community has ceased maintenance, meaning none of these problems can be addressed or fixed, virtually making it impossible for the tool to be put into real use—a fatal blow to any open-source project.Fortunately, all these issues have been resolved in doc-apis, and we're not stopping there; we're committed to continuous iteration and community support. Our aim is nothing short of becoming the global number one in this field—no joke intended!Those familiar with Easy-Es may know me by my community nickname, LaoHan (Old Man), and my initials are XPC. Go ahead and type these three letters into your input method, and what first catches your eye might be "Xiang Pi Chi" (a colloquial expression akin to daydreaming). Indeed, that's who I am. I once dreamed of not needing to write a single line of code or add a single configuration,with the mere definition of an interface enabling immediate collaboration with frontend developers. To this day, to turn dreams into reality, I've decided to open-source doc-apis and maintain it long-term. All the aforementioned problems have been rectified in doc-apis, and we've added even more user-friendly features, planning even more "Xiang Pi Chi"-like functionalities. For instance, not only can it auto-generate documentation, but it also allows one-click interface debugging on the auto-generated documentation, leaving Swagger (Brother Stockings) no choice but to take off his stockings and bow in submission. So, is LaoHan just "Xiang Pi Chi"ing or truly skilled? Time will tell, so let's give it a try (welcome to join us)!Lastly, I hope everyone dares to "Xiang Pi Chi." Without the courage to dream, how can one ever hope to achieve a toad's dream of eating swan meat? From Easy-Es to doc-apis, I've always been "Xiang Pi Chi"ing, much like my fitness journey, which has spanned ten years to date, with the physique I once fantasized about now a reality. In conclusion, life needs many "Xiang Pi Chi"s, and I share this sentiment with you all!