Our great sponsors
-
swagger-core
Examples and server integrations for generating the Swagger API Specification, which enables easy access to your REST API
-
swagger-ui
Swagger UI is a collection of HTML, JavaScript, and CSS assets that dynamically generate beautiful documentation from a Swagger-compliant API.
-
SurveyJS
Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
-
swagger-petstore
swagger-codegen contains a template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition.
Here is an example from Swagger APIs GitHub:
So, we looked to Swagger API (now the OpenAPI Specification) in our search for something to minimize the uncertainty and misconceptions.
We ran into some minor issues (#1201, #1210, #1355, #1356 and #1769) and fixed some stuff we stumbled upon along the way, although it didn't really bother us as well (#1451 and #1769).
Editor.swagger.ui was a nice editor for writing the API-specification as we moved long. It ensured we stayed within the definition and caught minor inconsistencies as we moved along. Remember to still store the specification in your version control system of choice.
We had one use case that is still not supported by Swagger Codegen, though. We would really like to use inheritance in our data model. The Swagger specification has properties for specifying inheritance, but it hasn't made its way into Codegen yet and there might still be some unresolved edge cases in the Swagger specification (#403).
For this project, we use our own fork of Swagger Codegen. In the fork, we have implemented support for inheritance in the PHP code generation. We have provided it as a pull request for Codegen, but because of the unresolved edge cases in the Swagger specification we still need to work a bit on this.