From b5a0d173d2bb7ab7b29ee5b017c788793d574e23 Mon Sep 17 00:00:00 2001 From: William Cheng Date: Thu, 17 May 2018 00:09:48 +0800 Subject: [PATCH] Revise the usage of OpenAPI Generator online (docker image) (#73) * revise openapi generator online image usage * remove -o from command --- README.md | 42 +++++++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 6a1809b899..e31903f2f9 100644 --- a/README.md +++ b/README.md @@ -157,26 +157,34 @@ The generated code will be located under `./out/go` in the current directory. The openapi-generator-online image can act as a self-hosted web application and API for generating code. This container can be incorporated into a CI pipeline, and requires at least two HTTP requests and some docker orchestration to access generated code. -Example usage (note this assumes `jq` is installed for command line processing of JSON): +Example usage: ```sh -# Start container and save the container id -CID=$(docker run -d openapitools/openapi-generator-online) -# allow for startup -sleep 5 -# Get the IP of the running container -GEN_IP=$(docker inspect --format '{{.NetworkSettings.IPAddress}}' $CID) -# Execute an HTTP request and store the download link -RESULT=$(curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' -d '{ - "swaggerUrl": "https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml" -}' 'http://localhost:8188/api/gen/clients/python' | jq '.link' | tr -d '"') -# Download the generated zip and redirect to a file -curl $RESULT > result.zip -# Shutdown the swagger generator image -docker stop $CID && docker rm $CID -``` +# Start container at port 8888 and save the container id +> CID=$(docker run -d -p 8888:8080 -e GENERATOR_HOST=http://localhost:8888 openapitools/openapi-generator-online) -In the example above, `result.zip` will contain the generated client. +# allow for startup +> sleep 10 + +# Get the IP of the running container (optional) +GEN_IP=$(docker inspect --format '{{.NetworkSettings.IPAddress}}' $CID) + +# Execute an HTTP request to generate a Ruby client +> curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' \ +-d '{"openAPIUrl": "https://raw.githubusercontent.com/openapitools/openapi-generator/master/modules/openapi-generator/src/test/resources/2_0/petstore.yaml"}' \ +'http://localhost:8888/api/gen/clients/ruby' + +{"code":"c2d483d3-3672-40e9-91df-b9ffd18d22b8","link":"http://localhost:8888/api/gen/download/c2d483d3-3672-40e9-91df-b9ffd18d22b8"} + +# Download the generated zip file +> wget http://localhost:8888/api/gen/download/c2d483d3-3672-40e9-91df-b9ffd18d22b8 + +# Unzip the file +> unzip c2d483d3-3672-40e9-91df-b9ffd18d22b8 + +# Shutdown the openapi generator image +> docker stop $CID && docker rm $CID +``` #### Development in docker