Install a generator of mock servers and client programs of the PetStore sample app
The official way to edit a Swagger/OpenAPI document is using the Swagger Editor available through the swagger.io website, or to use the SwaggerHub website. The Editor can be run on your laptop inside a web browser which allows local JavaScript execution. Advanced Swagger UI Techniques. Posted on February 19. Not easily fixable, though you can load your Swagger spec file into the Swagger Editor, drag the left frame further left, “print as PDF” and edit the text with Libre Office. ← Free Mac OS X PDF Editors. Apiary Editor supports API Blueprint and Swagger API Description languages. Overview Instant validation and live preview enable you to describe, test, share, and collaborate on an API in minutes.
- The Petstore API in SwaggerHub
- Generate
- Java Spring
This is a step-by-step tutorial on how you can install a generator of mock servers and client programs. The sample is the PetStore sample app.
How To Use Swagger Editor
Install swagger-codegen locally
After you install Git and Maven on your Mac:
The “–depth=1” downloads only the latest version of the repo.
mvn install takes a while (11 minutes), and ends with something like this:
Next let’s use the default assets to generate clients for the PetStore sample app.
The Petstore API in SwaggerHub
View the spec for edit in your browser:
This displays a sample API for the ficticious PetStore app.
In the future, you can use this same editor to work on your own API contents.
3 Pet Store Classes
Notice the operations under each of these 3 classes (listed alphabetically):
- PetApi - Everything about your pets
- StoreApi - Access to Petstore orders
- UserApi - Operations about user
Also notice the Models: Order, Category, User, Tag, Pet, ApiResponse.
View the spec installed locally, using your favorite text editor (subl in this example):
Generate
The processing uses mustache templating.This means static files are marked up with variables between (that look like a moustache). The mustache program replaces the variables with text values.
A more advanced approach is a program that generates the code.
“auto-generation of code sure gets me a long way down the road, saving me time doing the really mundane, heavy lifting in creating the skeleton code structures I need to get up an running with any new API.” –API Evangelist
Generate Go Server
On a Mac, install Go, then:
The back-slash specifies line continuation in the CLI.
-i http://petstore.swagger.io/v2/swagger.json
is an alternative to the downloaded Swagger spec for Petstore:-i ~/gits/swagger-codegen/modules/swagger-codegen/src/test/resources/2_0/petstore.yaml
-l specifies the generator in folder:
~/gits/swagger-codegen/samples/client/petstore
There are others such as jaxrs-cxf-client
-o, CAUTION: If not specified, files are generated in the pwd.
The generated go-server folder contains:
- .swagger-codegen folder
- .swagger-codget-ignore file
- api folder
- go folder
- main.go file
Invoke the Go server:
BLAH: I got this message:
See https://stackoverflow.com/questions/39665379/golang-fully-qualified-import-path-in-auto-generated-code
C#
Using swagger-codegen to generate C# API for REST serviceby Dmytro Zhluktenko
Java Spring
Generate client stubs & document your REST-API using Swagger & Springby Johannes FialaDevoxx
Generate JMeter from default files
On a Mac, output to Downloads:
The back-slash specifies line continuation in the CLI.
-l specifies the generator in folder:
~/gits/swagger-codegen/samples/client/petstore
There are others such as jaxrs-cxf-client
CAUTION: If not specified, files are generated in the pwd.
-o specifies the output folder. PROTIP: Name it the same as the generator (jaxrs-cxf-client)
Look for the console message like this to list the generated files:
On a Linux server:
### Generated go PetStore server
Invoke the Petstore server app generated in the Go language.
Use Generated JMeter load tests
After Installing JMeter…
Edit the .csv file
- from “localhost”
- from port 8080
Invoke a generated JMeter .jmx file to load test the sample Petstore app:
Since there are three .jmx files:
PetApi - Everything about your pets
StoreApi - Access to Petstore orders
Generate your own .jmx
The .jmx template files in Swagger-gen are hard-coded.
Options to automate:
Edit the generated file using the JMeter GUI and convert values back to variables.
Write a program using JMeter’s API, as described at:
- https://github.com/uttesh/JmeterAPISample
- http://uttesh.blogspot.in/2015/04/jmeter-load-testing-by-code-jmeter-api.html
Write a program to read the Swagger spec and generate a .jmx fileeither containing variables to generate or containing values for use directly in JMeter.
Go
Swagger Editor Windows
The JMeterGo program is written in the Go language for processing by the Serverless framework running on Amazon Lambda and other clouds.
- https://golang.org/pkg/encoding/xml/
Since Amazon Lambda does not natively process Go language programs,we use the Go shim for Amazon Lambda.
Another app under test
If you are to create a new Swagger (OpenAPI) spec file, verify its using the online validator:
http://online.swagger.io/validator/debug?url=http://petstore.swagger.io/v2/swagger.json
http://www.nvisia.com/insights/swagger-cataloging-with-the-worlds-most-popular-framework-for-apis
Please enable JavaScript to view the comments powered by Disqus.