Aug 09

Swagger Codegen can be used to create client and server stubs in various languages for testing APIs as they are being developed. Swagger Codegen is a Java application and, evidently, requires Java 8 to run.

Once generated, server stubs can be run to provide the means of testing the API under development through the Swagger Codegen UI interface, which replicates the Swagger Editor API testing pane.

The article referred to in this post walks the reader through the process of creating a Swagger Codegen environment in Windows 10’s Windows Subsystem for Linux 2 Alpine Linux distribution. The environment includes the “automatic” stub generation script for NodeJS API stub server code and a stub server executor that re-generates and re-starts the stub server whenever the API under development is changed on disk. See https://github.com/mwczapski/Swagger_Codegen_3_Docker_Container/blob/master/create_swagger_codegen_in_wsl_alpine.md for the article.

Jul 12

Among other activities, I design and implement RESTful APIs. I use the VSCode, the Swagger Editor, the Swagger UI and the Swagger Codegen, or a combination, as needed. I also use Docker for containerisation as much as possible because I dislike burdening my host machine with all manner of software and the resulting need to manage versions, version conflicts, etc..

The intent of the document is to provide a reader with the means to create a self-contained Docker container for generating and running back-end stubs based on an openapi.yaml specification for API-First development based on the Docker Image at https://hub.docker.com/repository/docker/mwczapski/swagger_codegen.

The container will have the means to:

  • Use the Swagger Codegen to generate and run NodeJS stubs (and Java8 stubs, and Bash stubs) to facilitate API testing
  • Convert YAML specification documents to JSON and the vice versa

Please see https://github.com/mwczapski/Swagger_Codegen_3_Docker_Container for package artefacts.

Jul 11

Among other activities, I design and implement RESTful APIs. I use the VSCode, the Swagger Editor, the Swagger UI and the Swagger Codegen, or a combination, as needed. I also use Docker for containerisation as much as possible because I dislike burdening my host machine with all manner of software and the resulting need to manage versions, version conflicts, etc..

To help myself, and others, I documented the steps necessary to create a Docker Image to host the Swagger Codegen so that Docker container using that Image can be spun up as needed in seconds and destroyed as quickly when no longer required. The intent of the document is to provide a set of steps that a reader can use to create a self-contained Docker container for API-First development using latest Swagger Codegen (3.x) and OpenAPI (2 or 3). The intent of the image is to provide a reader with the means to create a self-contained Docker container for generating and running back-end stubs based on an openapi.yaml specification for API-First development. 

The container will have the means to:

  • Use the Swagger Codegen to generate and run NodeJS stubs (and Java8 stubs, and Bash stubs) to facilitate API testing
  • Convert YAML specification documents to JSON and the vice versa

The image is based on the latest Docker node image with extras as discussed herein.

The image uses:

  • `swagger-codegen-cli/3.0.20` to support YAML to JSON conversion and generation of client and server stubs based on the OpenAPI Specification / Swagger file for supported languages. `swagger-codegen-cli` requires Java 8, which is installed during container setup.
  • `sqlite3`
  • `nodemon` server
  • `http-server` server

Please see https://github.com/mwczapski/Swagger_Codegen_3_Docker_Container for package artefacts.

preload preload preload