I was introduced to a new tool, swagger and I didn't realize the wonderful development trip it would take me on.
I job was to create a cloud application and I was adamant I would work on the server side of the project and leave the GUI to more capable coders.
Swagger creates great documentation for the rest interface. The definition language uses the OpenAPI specification (formerly known as the Swagger Specification). An OpenAPI document that conforms to the OpenAPI Specification may be represented either in JSON or YAML format. I created my document in YAML format as per the "Petstore" example that comes with the swagger editor.
I initially decided to just create documentation for an api interface. I figured once I generated the interface I could code the interface with one of the many different bindings to creating rest servers.
The online editor is used to create and validate the swagger rest specification file ver 2.
I wasn't sure how or if the OpenApi specification could be translated to code but swagger produced great documentation and was happy to use it as just as a great documentation tool.
Using the OpenApi specification I documented a few interfaces, but where to next?
The tool also comes with a code generator that generates client & server code bindings. It brings with it over 50 client and server bindings which you can incorporate into your code base.
With over 50 bindings I spent a great deal of time trying to determine which server/client code I should generate with the swagger code generator.
The GUI coder wanted to create a server in nodes.js.

The front end was being written in React a toolkit from facebook.

Springboot was also a great revelation, its massive code base made creating a rest server with a backing database easily and resilient.
The springboot framework was extensive and mature. I
entered the world of:
- Java JPA (Postgres to Pojo)
- pki authentication/certificates
- Jackson Json conversion (Pojo to Json)
- Mochito testing
- Roles/User management
- ...





The project was managed using the Atlassian Kanban model for agile software development, with Atlassian Jira handling ticket management and the Atlassian Kanban board.
No comments:
Post a Comment