swagger-api / swagger-api/swagger-ui

Example request string is not populated

Open
#3,233 16 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Good first issue P2 type: feature version: 3.x
Dominant language
JavaScript
Stars
29k
Forks
9.3k
Avg merge
2d 23h
Merged PRs (30d)
25

Description

Trying to migrate from swagger-ui 2x to 3.0.12. It seems that swagger-ui 3.x is not able to render x-examples data.

"/data/targets" : {
"post" : {
"tags" : [ "dummy" ],
"summary" : "Returns validation results of given list of targets.",
"description" : "",
"operationId" : "dataTargets",
"produces" : [ "application/json" ],
"parameters" : [ {
"in" : "body",
"name" : "body",
"description" : "Targets list in JSON format.",
"required" : true,
"schema" : {
"type" : "string"
},
"x-examples" : {
"default" : "{\"targets\": \"[1, 2, 3, 4]\"}"
}
}
<...>
}

In version 2.x swagger-ui was able to use the value from x-examples as example request. As a quick and dirty hack, I have made some changes in src/core/components/param-body.jsx

updateValues = (props) => {
let { specSelectors, pathMethod, param, isExecute, consumesValue="" } = props
let parameter = specSelectors ? specSelectors.getParameter(pathMethod, param.get("name")) : {}
let isXml = /xml/i.test(consumesValue);
let paramValue = isXml ? parameter.get("value_xml") : parameter.get("value");
if (parameter.get("x-examples") && parameter.get("x-examples").get("default")) {
paramValue = parameter.get("x-examples").get("default")
}
....
}

Is it possible to address this properly? Add support of x-examples into core or maybe create a plugin for this?

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with src/core/components/param-body.jsx, especially the updateValues logic and its existing handling of parameter examples. Compare the current behavior with the reported Swagger UI 2.x behavior and determine whether core support or a plugin fits. The work is done when x-examples.default populates the example request for the reported body parameter without breaking existing example handling.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, openapi
Domain
frontend
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.